Den*_*gan 25 django django-forms modelform
我的模型与以下内容不同:
class Bike(models.Model):
made_at = models.ForeignKey(Factory)
added_on = models.DateField(auto_add_now=True)
Run Code Online (Sandbox Code Playgroud)
所有用户都可以在多家工厂工作,因此,他们的用户配置文件都有一个ManyToManyField到Factory.
现在我想构建一个ModelFormfor,Bike但我希望made_at列表只包含当前用户工作的工厂.这个想法是,用户应该能够添加他们组装好的自行车并进入自行车所在的工厂.
我怎么做?
Dav*_*ave 41
在视图中尝试这样的东西
form = BikeForm()
form.fields["made_at"].queryset = Factory.objects.filter(user__factory)
Run Code Online (Sandbox Code Playgroud)
修改Factory查询集,以便识别用户工作的工厂.
你的问题可能是一个骗局.
ForeignKey由django.forms.ModelChoiceField表示,它是ChoiceField,其选择是模型QuerySet.请参阅ModelChoiceField的参考.
因此,为字段的queryset属性提供QuerySet.取决于您的表单是如何构建的.如果您构建一个显式表单,您将拥有直接命名的字段.
form.rate.queryset = Rate.objects.filter(company_id=the_company.id)如果采用默认的ModelForm对象,form.fields["rate"].queryset = ...这在视图中明确完成.没有黑客攻击.
| 归档时间: |
|
| 查看次数: |
30984 次 |
| 最近记录: |