Фильтр с Django

Рейтинг: 0Ответов: 1Опубликовано: 15.05.2023

Создаю проект с Джанго, хочу сделать фильтрацию по типам рецепта: ужин, обед и завтрак, но не знаю с чего начать и как это сделать.

Ответы

▲ 0

Чтобы отфильтровать записи какой-либо модели используйте .filter()

К примеру у меня есть модель записей:

class Article(models.Model):
    author = models.ForeignKey(CreativeUser, on_delete=models.PROTECT, verbose_name='Автор')
    title = models.CharField(max_length=100, verbose_name="Заголовок")
    text = models.TextField(verbose_name="Текст")
    pub_data = models.DateTimeField(auto_now_add=True, verbose_name="Дата публикации")

    class Meta:
        verbose_name = 'Запись'
        verbose_name_plural = 'Записи'

Отфильтровать записи такой модели я могу по её полям.Вот сортировка по полю author:

Article.objects.filter(author=request.user)

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

В вашем же случае скорее всего будет модель рецепта, и у неё будет поле со списком, оно выглядит так:

...    
types_of_recipe = (('з','Завтрак'), ('о','Обед'), ('у','Ужин'))
type_of_recipe = models.CharField(max_length=7, choices=types_of_recipe)
...

Опять же для примера возьмём записи для завтрака вашей предполагаемой модели рецепта(назовём её Recipe):

Recipe.objects.filter(type_of_recipe='з')

Это вроде бы максимально подробное объяснение, но я думаю если есть что добавить, то в комментариях или других ответах допишут.Удачного кодинга.