我有目标了一些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的许多关键功能,它可能会自动完成所有这些工作,但我喜欢将其作为本书的一个伪造键的内部逻辑。