首页 > 解决方案 > 表单提交后,Django Get Auth User pk 保存在模型中

问题描述

我目前正在实施 Django 的身份验证用户。我现在正在尝试创建一个包含两个简单字段的表单,其中用户的 pk 作为外键。对于模型,我有以下 ForeignKey 代码:

user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)

然后我有一个表单类(forms.ModelForm),我在其中设置字段。我没有列出上述模型中的用户字段,因为我希望在用户提交表单时自动完成。

最后,我对以下 post 方法有一个看法:

    def post(self, request):
    form = self.form_class(request.POST)

    if form.is_valid():
        sub = form.save(commit=False)

        sub.save()

    return render(request, self.template_name, {'form': form})

非常感谢任何输入!

标签: djangodjango-modelsdjango-formsdjango-templatesdjango-views

解决方案


def post(self, request):
    form = self.form_class(request.POST)

    if form.is_valid():
        sub = form.save(commit=False)
        sub.user = request.user
        sub.save()

    return render(request, self.template_name, {'form': form})

并确保此视图只能由经过身份验证的用户询问


推荐阅读