在表单处理期间,我希望能够在模型对象上设置外键字段,而无需用户从下拉列表中选择键。
例如:
#models.py
class AAA(models.Model):
some_field = models.TextField()
class BBB(models.Model):
another_field = models.TextField()
key_field = models.ForeignKey('AAA')用户将从显示'AAA‘实例的视图导航到create_object样式视图,该视图将在给定引用'AAA’的参数的情况下创建'BBB‘的实例。在代码中设置外键以指向回'AAA‘实例。
django comments框架似乎可以做到这一点,但我不知道如何做到这一点。
有什么想法吗?我相信这应该是非常简单的。
发布于 2012-01-23 20:43:13
您可以从模型表单中排除key_field,使用commit=False保存,然后在保存到数据库之前在视图中设置key_field。
class BBBForm(forms.ModelForm):
class Meta:
model = BBB
exclude = ("key_field",)
def create_view(request, **kwargs):
if request.method == "POST":
aaa = # get aaa from url, session or somewhere else
form = BBBForm(request.POST)
if form.is_valid():
bbb = form.save(commit=False)
bbb.key_field = aaa
bbb.save()
return HttpResponseRedirect("/success-url/")
...https://stackoverflow.com/questions/8971606
复制相似问题