Preselective dynamic modelChoicefields Django

时间:2016-08-31 14:44:01

标签: python django

我有3个模型,它们通过外键连接,如此

models.py

class Partner(models.Model):
    partner_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    ...

class Product(models.Model):
    product_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    partner_id = models.ForeignKey(Partner)
    ...

class ProductData(models.Model):
    data_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    partner_id = models.ForeignKey(Partner)
    product_id = models.ForeignKey(Partner)
    ...

我想要的是一个表单ProductDataForm,它通过选择一个partner_id调整我对product_id的选择。我上面有这个forms.py,但它不起作用:(

forms.py

class ProductDataForm(ModelForm):
    partner_id = forms.ModelChoiceField(queryset=Partner.objects.all())
    product_id = forms.ModelChoiceField(queryset=Product.objects.filter(partner_id=partner_id)

我需要为Homeage和Adminsite上的普通用户和管理员使用此动态。

有人能帮助我吗? :)

1 个答案:

答案 0 :(得分:0)

我没有很多使用ModelForms或ModelChoiceField的经验,但我在这里所做的可能会有所帮助:

class ProductDataForm(forms.Form):
partner_id= forms.ChoiceField(
    choices = [ (u.id, u.id) for u in Partner.objects.all()]
    )