1
我有包括外鍵的模式:我怎麼在__init__方法訪問Django的形式值的查詢
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)
我已經嘗試了一些不同的事情,至今沒有運氣。
定義「不工作」。它拋出任何錯誤?你的領域不能正確顯示? –
我猜想在調用父類'__init__'時,它並不期待'partType'關鍵字。如果是這樣,你應該將這行'partType = kwargs.pop('partType')'移動到'__init__'方法的頂部 – mateuszb
我將彈出窗口提前移動,並且沒有產生錯誤,但部分列表不是列表,這是受限於行上的partType值(這是我需要的。 –