gpt4 book ai didi

python - 如何在表单完成期间设置外键(python/django)

转载 作者:太空宇宙 更新时间:2023-11-03 12:12:26 24 4
gpt4 key购买 nike

在表单处理期间,我希望能够在模型对象上设置外键字段,而无需用户从下拉列表中选择键。

例如:

#models.py
class AAA(models.Model):

some_field = models.TextField()

class BBB(models.Model):
another_field = models.TextField()
key_field = models.ForeignKey('AAA')

用户将从显示“AAA”实例的 View 导航到 create_object 样式 View ,该 View 将在给定引用“AAA”的参数的情况下创建“BBB”实例。外键在代码中设置为指向“AAA”实例。

django 评论框架似乎可以做到这一点,但我不知道该怎么做。

有什么想法吗?我相信它应该非常简单。

最佳答案

您可以从您的模型表单中排除 key_field,使用 commit=False 保存,然后在您的 View 中设置 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/")
...

关于python - 如何在表单完成期间设置外键(python/django),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8971606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com