如何从模型中呈现多项选择字段

Posted

技术标签:

【中文标题】如何从模型中呈现多项选择字段【英文标题】:How to render multiple choices field from model 【发布时间】:2019-09-12 12:02:12 【问题描述】:

我需要如下渲染产品模型:

1 - 男性/女性有 2 个复选框

当用户选中男士时,仅出现男士产品

当用户检查女性时,只会出现女性产品

同时选中或取消选中所有产品时都会出现

所以我使用了性别字段的选项,但是如何在我的模板中呈现它,如上所述?提前谢谢...

GENDER_CHOISES=(
('men', "Men"),
    ('women', "Women"),)
class Product(models.Model):
    title = models.CharField(max_length=120)
    slug  = models.SlugField(blank=True, unique=True)
    description = models.TextField()
    price  = models.DecimalField(decimal_places=2, 
    max_digits=20, default=39.99)
    image  = models.ImageField(upload_to='products', 
    null=True, blank=False)
    featured  = models.BooleanField(default=False)
    active  = models.BooleanField(default=True)
    gender = models.CharField(max_length=120,default="women" 
    ,choices=GENDER_CHOISES)
    timestamp= models.DateTimeField(auto_now_add=True)

【问题讨论】:

【参考方案1】:

如果是为了显示所有产品的视图,您可以执行以下操作:

从数据库中检索所有产品。 然后,如果选择了女性,则需要使用一些 javascript 隐藏所有男性产品,如果选择男性,则隐藏女性产品。

或者更高级的方法是使用一些 ajax 或创建一个 api 来在每次选中复选框时按想要的性别过滤产品查询集。

【讨论】:

所以你有任何javascript sn-ps这样做!

以上是关于如何从模型中呈现多项选择字段的主要内容,如果未能解决你的问题,请参考以下文章

使用模型表单集时如何呈现文本框而不是选择框

如何在Django中基于枚举为模型字段设置默认值?

Django,如何从模型表单的选择字段中删除空白选择?

如何从列表中的 django 模型中获取选择字段?

Django模型中的下拉列表

Django - 不使用表单或模型表单时在模板中呈现模型选择