Django ModelForm 過濾外鍵選擇
簡介
簡介在表可以最好根據某些標準限制向使用者提供的針對特定領域的選擇。這在涉及分層資料的場景中特別有用,例如選擇外鍵時。
案例研究:在ModelForm 中選擇外鍵選項class Company(models.Model): name = ... class Rate(models.Model): company = models.ForeignKey(Company) name = ... class Client(models.Model): name = ... company = models.ForeignKey(Company) base_rate = models.ForeignKey(Rate)
在這種情況下,每家公司都有多個費率和客戶。每個客戶必須從其母公司的費率中選擇基本費率,而不是其他公司的費率。
使用查詢集過濾限制外鍵選擇class ClientForm(ModelForm): class Meta: model = Client fields = ['name', 'base_rate'] def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['base_rate'].queryset = Rate.objects.filter(company_id=self.instance.company_id)
在此程式碼中,我們從與表單關聯的實例中擷取公司ID。這可確保根據正確的公司過濾費率選項。
以上是如何在 Django ModelForms 中過濾外鍵選擇?的詳細內容。更多資訊請關注PHP中文網其他相關文章!