我有一个模型不不同于以下内容:

class Bike(models.Model):
    made_at = models.ForeignKey(Factory)
    added_on = models.DateField(auto_add_now=True)

所有用户可能会在一些工厂,因此它们的用户配置文件的工作都有ManyToManyFieldFactory

现在我想构建一个ModelForm Bike但我想made_at列表以组成当前用户只能工厂。这个想法是,用户应该能够增加他们已经组装自行车,并进入其工厂的自行车在做。

我该怎么做呢?

有帮助吗?

解决方案

您的问题可能是这方面的一个欺骗

S.的洛特 答案有解决你的问题票。 他回答说:

  

ForeignKey的由django.forms.ModelChoiceField,这是一个ChoiceField其选择是一个模型查询集来表示。参见ModelChoiceField参考。

     

所以,提供一个QuerySet到该字段的查询集属性。取决于你的表格是如何构建的。如果你建立一个明确的形式,您将有场直接点名。

     

form.rate.queryset = Rate.objects.filter(company_id=the_company.id)   如果采取默认的ModelForm对象,form.fields["rate"].queryset = ...

     

这是在视图中明确地完成。没有黑客周围。

其他提示

尝试这样在视图中

form  = BikeForm()
form.fields["made_at"].queryset = Factory.objects.filter(user__factory)

修改厂查询集,使得其标识用户工作在工厂。

Nowaday,你应该使用:

    form.base_fields['alumno_item'].queryset = AlumnoItem.objects.prefetch_related(
        'alumno',
        'alumno__estudiante',
        'alumno__estudiante__profile',
        'item'
    )
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top