过滤数据库

时间:2018-04-28 04:48:18

标签: django filter

我有一个模型,它给了我一些奶酪的细节,现在我在列表视图中使用它,我也实现了一个搜索功能,这一切都很好。 现在我想在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 :(得分:1)

不确定您是使用基本请求还是使用基于类的视图。有一个名为django-filters的整洁图书馆。具有实现示例的stackoverflow answer

如果您正在制作自定义视图,我会按如下方式进行查询:

如果您尝试按多个州Cheese.objects.filter(country='USA')进行过滤,我会针对特定国家/地区设置Cheese.objects.filter(country__in=['USA', 'FRANCE']