фильтрация вашей базы данных - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть модель, которая дает мне информацию о сыре, теперь я использую его в виде списка, я также реализовал функцию поиска, которая прекрасно работает. Теперь я хочу добавить вкладки фильтра в HTML. Например: сыр происходит только из 5 стран, я хочу отобразить значки флагов 5 стран, которые при нажатии должны отображать только сыры из этих стран, например, mixitup, хорошо, если нет анимации. как я могу достичь этого ???? примечание: модели, виды и HTML написаны обычным способом, если вы хотите увидеть мой код.

MODELS.PY

class Cheese(models.Model):

    TYPES_CHOICES=(
        ('COW', 'COW'),
        ('GOAT', 'GOAT'),
        ('SHEEP', 'SHEEP'),
        ('BUFFALO', 'BUFFALO'),
        ('COW, GOAT & SHEEP',  'COW, GOAT & SHEEP'),
        ('COW & SHEEP',  'COW & SHEEP')
    )

    COUNTRY_CHOICES=(
        ('USA', 'USA'),
        ('UK','UK'),
        ('ITALY', 'ITALY'),
        ('FRANCE', 'FRANCE'),
        ('NETHERLANDS', 'NETHERLANDS')
    )

    origin = models.CharField(max_length=100)
    title =  models.CharField(max_length=100)
    types =  models.CharField(max_length=100, choices=TYPES_CHOICES)
    about =  models.TextField()
    serve =  models.CharField(max_length=1000)
    image = models.ImageField(
        null=True, 
        blank=True,
        width_field="width_field",
        height_field= "height_field")
    width_field = models.IntegerField(default=550)
    height_field = models.IntegerField(default=550)
    country = models.CharField(max_length=50, choices=COUNTRY_CHOICES)
    timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)

    def __unicode__(self):
        return self.title

1 Ответ

0 голосов
/ 30 апреля 2018

Не уверены, используете ли вы базовые запросы или используете представления на основе классов. Есть аккуратная библиотека под названием django-filters. Переполнение стека ответ с примером реализации.

Если вы создаете пользовательские представления - я бы сделал запрос следующим образом:

Я бы сделал Cheese.objects.filter(country='USA') для конкретной страны, и если вы пытаетесь фильтровать по нескольким штатам Cheese.objects.filter(country__in=['USA', 'FRANCE'].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...