【问题标题】:filtering your database过滤你的数据库
【发布时间】:2018-04-28 04:48:17
【问题描述】:

我有一个模型可以提供一些奶酪的详细信息,现在我在列表视图中使用它,我还实现了一个搜索功能,一切正常。 现在我想在 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

【问题讨论】:

    标签: django filter


    【解决方案1】:

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

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

    我会为特定国家/地区创建一个Cheese.objects.filter(country='USA'),如果您尝试按多个州过滤Cheese.objects.filter(country__in=['USA', 'FRANCE']

    【讨论】:

    • 谢谢,我得到了过滤部分.. 但我不明白的是,如何把它付诸实践?例如:在我的views.py中,我创建了过滤器 Cheese.objects.filter(country__in=['USA', 'FRANCE']。我怎样才能将它链接到我的模板?假设我创建了4个带有国家名称的按钮,我将如何让那个按钮给我过滤后的结果??应该如何从那个按钮到过滤器的连接,我已经使用循环在 html 中显示了所有项目列表。
    猜你喜欢
    • 1970-01-01
    • 2013-08-19
    • 2013-07-18
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    相关资源
    最近更新 更多