【问题标题】:Filtering a the value of fields in a model form in django在 django 中过滤模型表单中的字段值
【发布时间】:2011-10-25 14:51:00
【问题描述】:

我在 django 中使用 ModelForm 在 django 中创建我的表单。所以我有一个引用 Location 模型的约会模型。因为我使用的是 ModelForm,所以 Location 字段的选择框由 django 本身自动填充。我想要的是根据状态等属性控制使用 ModelForm 创建的表单中填充的位置类型。

我不想手动覆盖 ModelForm 中的位置字段本身。我希望元素由 django 本身处理。我只想挂一个过滤器。有什么建议吗?

【问题讨论】:

标签: django django-models django-admin


【解决方案1】:

如果您的实例已存在,并且不在内联表单中,您可以在模型表单中执行以下操作:

def __init__(self,*args,**kwargs):
    super (AppointmentForm,self ).__init__(*args,**kwargs) # populates the post
    #filter appointments based on status
    if self.instance.pk:
        # the location filter below is a guess. i don't know your models.
        locations = Location.objects.filter(status_id=self.instance.status_id)
        self.fields['location'].queryset = locations

另一种方法是使用更棘手的回调...

【讨论】:

    猜你喜欢
    • 2021-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2012-05-04
    • 2017-08-10
    • 2013-08-21
    相关资源
    最近更新 更多