我有目標了一些Django的對象是這樣的:Django的ModelField一個對象,它是ForgeinKeys的其他對象
class Award(Model):
name = CharField(...)
date = DateTimeField(...)
class Book(Model):
name = CharField(...)
award = ForgeinKey(Award, blank=True)
(即每一本書可能會或可能不會有一個獎)
我想製作添加/編輯獎項的表單。假設已經創建了很多書籍。起初,我創造了這樣一個的ModelForm:
class AwardForm(ModelForm):
class Meta:
model = Award
它創造了一個正確的形式與所有的數據,但是沒有辦法,將圖書添加獎(或紀念這一裁決適用於被選中的書) 。
我要手動一個ModelMultipleChoiceField
添加到AwardForm(與該圖書中查詢集),然後添加邏輯來is_valid
,將檢查中選定的書籍,並添加了一些save
要經過選擇的書籍和將該對象上的forgein鍵設置爲該對象。
但是,是否有一個很好的'Django'方法來自動執行此操作?即只是添加一個特定的領域的形式,這將做到這一切呢?如果我要將Book.award更改爲Award.books的許多關鍵功能,它可能會自動完成所有這些工作,但我喜歡將其作爲本書的一個僞造鍵的內部邏輯。