2012-03-01 105 views
2

我使用的是django模型表单,即使没有注册的用户也可以填写表单,但是提交需要用户注册。 这里是我的模型:在用户注册之前保存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}) 

DONOT理会在视图中缩进和其他的东西,这仅仅是一个我所试图做的模型,可以看出任何匿名用户都可以现在提交表单,我希望它能够进一步修改,因为当匿名用户提交表单时,他应该先注册,然后将他的数据添加到模型中。

这是如何实现的?

回答

1

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

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

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

0
  1. 不需要用户FK。保存模型。
  2. 如果request.user.is_authenticated()得到一个具有创建模型的ID的cookie。在登录页面重定向他。
  3. 对于每个用户检查是否有一个与模型id的cookie,附加用户模型,保存。
+0

请详细说明一下,我无法理解它,如果你有教程/帖子/链接解释步骤请在这里发布。谢谢 – user993563 2012-03-03 12:39:59

+0

@ user993563这里看起来很难吗? – DrTyrsa 2012-03-03 14:59:57

+0

1.给他一个带有创建模型ID的cookie。 2.使用户FK不需要?这是否意味着用户模型不应该是外键?我是一个django中介,因此请详细说明谢谢。 – user993563 2012-03-04 07:01:17

相关问题