【问题标题】:How do I filter the choices in a ModelForm that has a CharField with the choices attribute (and hence a Select Field)如何过滤具有带有选择属性的 CharField 的 ModelForm 中的选择(因此是选择字段)
【发布时间】:2009-07-22 16:52:44
【问题描述】:

我知道我可以过滤 Foreignkey 或 Many2ManyFields 的查询集,但是,对于作为 Select Widget(选择标签)的简单 CharField,我该怎么做。

例如:

PRODUCT_STATUS = (
                  ("unapproved", "Unapproved"),
                  ("approved", "Listed"),
                  #("Backorder","Backorder"),
                  #("oos","Out of Stock"),
                  #("preorder","Preorder"),
                  ("userdisabled", "User Disabled"),
                  ("disapproved", "Disapproved by admin"),
                  )

和领域:

o_status = models.CharField(max_length=100, choices=PRODUCT_STATUS, verbose_name="Product Status", default="approved")

假设我希望将其限制为仅“已批准”和“用户禁用”而不是显示完整数组(这是我想在管理员中显示的内容),我该怎么做?

谢谢!

【问题讨论】:

    标签: python django


    【解决方案1】:
    class YourModelForm(forms.ModelForm):
        def __init__(self, *args, **kwargs):
            super(YourModelForm, self).__init__(*args, **kwargs)
            self.fields['your_field'].choices = (('a', 'A'), ('b', 'B'))
    
        class Meta:
            model = YourModel
    

    我想这与从 ForeignKey 或 M2M 属性覆盖查询集没有太大区别。

    PS:感谢 irc.freenode.net 上#django 的 peritus

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-25
      • 2012-01-18
      • 2010-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多