Html + Django: Отображать новости по дате и категории

Разрабатываю сайт на Django и столкнулся со следующей задачей: нужно фильтровать трансляции по дате и категории. фильтр трансляции

Реализовал выбор категории, однако с датой возникли проблемы.

  1. Во первых мне нужно отправлять отправлять запрос сразу с двумя параметрами.
  2. Календарь представляет собой input, и я не до конца понимаю как мне связать переключение между категориями которые являются ссылка, и input в виде календаря.

Разметка и шаблонизатор выглядят следующим образом:

                {% csrf_token %}
                <button
                        class="translations__date-choose-btn_type_yesterday btn-no-style translations__date-choose-font-style">
                    Вчера
                </button>
                <button
                        class="translations__date-choose-btn_type_today btn-no-style translations__date-choose-font-style translations__date-choose_active">
                    Сегодня
                </button>
                <button
                        class="translations__date-choose-btn_type_tomorrow btn-no-style translations__date-choose-font-style">
                    Завтра
                </button>
                <input type="date" name="calendar"
                       class="translations__date-choose-btn_type_calendar btn-no-style translations__date-choose-font-style">
            </form>
            <form class="translations__sport-choose" method="post" action="">
                {% csrf_token %}
                <a href="{% url 'index' %}" class="translations__sport-chose-btn_type_all btn-no-style translations__sport-choose-btn-font-style translations__sport-choose_active">
                    Все
                </a>
                {% for i in category %}
                    {% if category_name == i.name %}
                        <a href="{% url 'cat' i.name %}"
                            class="translations__sport-chose-btn_type_all btn-no-style translations__sport-choose-btn-font-style translations__sport-choose_active">{{ i.name }}</a>
                    {% else %}
                        <a href="{% url 'cat' i.name %}"
                            class="">{{ i.name }}</a>
                    {% endif %}

                {% endfor %}
            </form>

views.py:

def index(request):
    category = Category.objects.all()
    translations = Translation.objects.all()
    return render(request, 'index.html', {"category": category, "translations": translations})


def index_category(request, category_name):
    category = Category.objects.all()
    translations = Translation.objects.all()
    return render(request, 'category.html', {"category": category, "translations": translations, "category_name": category_name})

Если вопрос подобного формата уже где то задавался, буду рад если сможете поделиться ссылкой, сам я к сожалению не нашел.

надо в models.py сделать поля с датой в нужной тебе модели. Например:

date = models.DateTimeField(default=timezone.now)

И потом добавить в класс Meta сортировку в обратном порядке

class Meta:
    ordering = ('-date',)

А по поводу сортировки по категориям, то в models, добавь ForigenKey на категорию, а потом в viws.py:

category = None
categories = GameCategory.objects.all()
all_products = Product.objects.filter(available=True)
if category_slug:
     category = get_object_or_404(GameCategory, slug=category_slug)
     all_products = all_products.filter(category=category)

Нашел ответ на своей вопрос и хочу поделиться им. Что бы реализовать двойную фильтрацию на чистом django нужно задать кнопкам значение категорий + дату (в моем случае это выглядело например "Сегодня_Футбол"). Далее на беке делаем split и фильтруем полученные данные.

Вернуться на верх