首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在表单完成时设置外键(python/django)

如何在表单完成时设置外键(python/django)
EN

Stack Overflow用户
提问于 2012-01-23 20:29:19
回答 2查看 9.6K关注 0票数 4

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

例如:

代码语言:javascript
运行
复制
#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框架似乎可以做到这一点,但我不知道如何做到这一点。

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

EN

Stack Overflow用户

回答已采纳

发布于 2012-01-23 20:43:13

您可以从模型表单中排除key_field,使用commit=False保存,然后在保存到数据库之前在视图中设置key_field

代码语言:javascript
运行
复制
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/")
        ...
票数 26
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8971606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档