2

我正在使用django模型表单,即使没有注册的用户也可以填写表单,但提交需要用户注册。这是我的模型:

class Study(model.Model):
    marksobtained = models.CharField(max_length=5)
    highestmarks = models.CharField(max_length=5)
    teacher = models.CharField(max_length=300)

class StudyForm():
   some customisation stuff. 

然后是views.py

form = StudiesForm(request.POST or None,
                       instance=id and Studies.objects.get(id=id))
if form.is_valid():
      form.save()
      return render(request, 'calculate.html', {'detail': ret_dict, 'amt': amt})
      else:
          return render(request, 'forms.html', {'form':form})
    else:
          return render(request, 'forms.html', {'form':form})

不要在意视图中的缩进和其他东西,这只是我正在尝试做的一个模型,可以看出任何匿名用户现在都可以提交表单,我希望它进一步修改,就像匿名用户一样用户提交表单,他应该首先注册,然后他的数据应该添加到模型中。

如何实施?

4

2 回答 2

1

如果用户未通过身份验证,则将表单数据保存到会话。

然后将用户登录到系统中。

然后将表单数据从会话中拉出并保存获取经过身份验证的用户信息的信息。

于 2012-03-01T10:07:34.857 回答
0
  1. 使用户 FK 不需要。保存模型。
  2. 如果request.user.is_authenticated()给他一个带有创建模型ID的cookie。将他重定向到登录页面。
  3. 对于每个用户,检查是否有带有模型 id 的 cookie,将用户附加到模型,保存。
于 2012-03-01T10:08:07.927 回答