django - 表单提交后,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})
非常感谢任何输入!
解决方案
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})
并确保此视图只能由经过身份验证的用户询问
推荐阅读
- awk - 将 sed 命令应用于特定行的每一列
- javascript - 如何使用 VS 2017 在 asp .net 解决方案中使用 vue-multiselect 标记?
- unity3d - 光穿过墙壁
- php - 内爆不在循环中的字符串中添加逗号
- java - 对于每个键具有多个值的查找表,Java 集合具有最高性能?
- php - PHP file_get_contents 为 HTTP 请求返回不一致的部分数据
- django - 我创建了一个登录页面,但是每当我输入凭据时,它都会在 /login 处显示 NoReverseMatch
- javascript - 如何开玩笑地只模拟一个导出的函数?
- php - 将表单输入存储在 Session 变量中
- php - 使用 PHP 只显示 10 个列表项?