首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django动态模型选择表单

Django动态模型选择表单
EN

Stack Overflow用户
提问于 2012-12-06 05:51:41
回答 2查看 975关注 0票数 0

我有一个这样的表单:

代码语言:javascript
复制
class ThingSelectionForm(forms.Form):
    things = forms.ModelChoiceField(
        queryset=Product.objects.filter(product=my_product),
        widget=forms.RadioSelect,
        empty_label=None,
    )

我的问题是-当页面加载时,我如何传入my_product变量?我应该创建一个自定义的__init__方法吗?

任何帮助都非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-06 14:28:50

我今天就是在做这样的事情。我找到this to be helpful了。这是戴夫的回答

models.py

代码语言:javascript
复制
class Bike(models.Model):
    made_at = models.ForeignKey(Factory)
    added_on = models.DateField(auto_add_now=True)

view.py

代码语言:javascript
复制
form  = BikeForm()
form.fields["made_at"].queryset = Factory.objects.filter(user__factory)

我使用了一个过滤器(foo=bar)类型的查询。

然后在forms.py中

代码语言:javascript
复制
made_at = forms.ModelChoiceField(queryset=Factory.objects.all())
票数 1
EN

Stack Overflow用户

发布于 2012-12-06 05:55:11

可以,您可以覆盖初始化

代码语言:javascript
复制
    class ThingSelectionForm(forms.Form):
        things = forms.ModelChoiceField(
            widget=forms.RadioSelect,
            empty_label=None,
        )
       def __init__(self, *args, **kwargs):
              my_prod = kwargs.pop('my_prod), None
              super(...)
              self.fields['things'].queryset = Product.objects.filter(product=my_prod),

#view

form = ThingSelectionForm(my_prod = my_prod)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13733110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档