2012-03-01 104 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

相關問題