3

我有一个包含外键的模型:

class Part(models.Model):
    partType = models.ForeignKey(PartType, on_delete=models.CASCADE)
    brand = models.ForeignKey(Brand, on_delete=models.CASCADE)
    part_name = models.CharField(max_length=60)

class QuotePart(models.Model):
    quote = models.ForeignKey(Quote, on_delete=models.CASCADE)
    line = models.PositiveSmallIntegerField(default=1)
    partType = models.ForeignKey(PartType, on_delete=models.CASCADE)
    # part can be None if the part has not been selected
    part = models.ForeignKey(Part, on_delete=models.CASCADE,blank=True,null=True)

我有一个表单,允许将部件添加到报价单中,并且希望将表单上的选择限制为仅是正确 PartType 的部件,但我的代码不起作用:

    class QuoteBikePartForm(ModelForm):
    def __init__(self, *args, **kwargs):
        super(QuoteBikePartForm, self).__init__(*args, **kwargs)
        self.fields['partType'].widget.attrs['disabled'] = True
        self.fields['frame_part'].widget.attrs['disabled'] = True
        partType = kwargs.pop('partType')
        self.fields['part'].queryset = Part.objects.filter(partType=partType.pk)

    class Meta:
        model = QuotePart
        fields = ['quote','line','partType','frame_part', 'part', 'quantity','cost_price', 'sell_price']

QuoteBikePartFormSet = inlineformset_factory(Quote, QuotePart, form=QuoteBikePartForm)

我已经尝试了许多不同的东西,但到目前为止没有运气。

4

1 回答 1

6

您可以使用“self.instance.key_name”来访问该值。

于 2017-09-14T12:33:56.033 回答