提交表单后,Django Get Auth用户pk将保存在模型中

时间:2018-07-18 01:19:55

标签: django django-models django-forms django-templates django-views

我目前正在实现Django的Auth用户。我现在正在尝试使用用户的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})

任何输入都将不胜感激!

1 个答案:

答案 0 :(得分:0)

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})

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