0
我有問題,有關如何附加到Django中登錄用戶的形式。 我希望附加表單屬於登錄用戶,並且我在表單中輸入的數據應該在登錄用戶表下進行。我是Django和python的新手,請耐心等待,希望我能正確解釋我想要做的事情。django登錄用戶配置文件和相關的其他形式
我要爲這個視圖輸入的數據應該記錄在用戶只有基本上我想附加這個視圖到登錄的用戶只有我得到的錯誤是 異常值:
registration_todos.user_id不能爲null
#models
class userProfile(models.Model):
user = models.OneToOneField(User)
birth =models.DateField()
name = models.CharField(max_length=100)
def __unicode__(self):
return self.name
class todos(models.Model):
user = models.ForeignKey(User)
title = models.CharField(max_length=100)
created = models.DateField()
time = models.TimeField()
def __unicode__(self):
return unicode(self.user)
#forms additional form for todos
class formtodos(ModelForm):
title = forms.CharField(label=(u'Todo'))
created = forms.DateField(label=(u'Date'))
time = forms.TimeField(label=(u'Time'))
#user = forms.CharField(label=(u'username'))
class Meta:
model = todos
exclude=('user',)
#view
def modeltodo(request):
if request.user.is_authenticated():
todos.objects.filter(user=request.user)
if request.method == 'POST':
form =formtodos(request.POST)
if form.is_valid():# All validation rules pass
todoss = form.save(commit=False)
todoss.created_by = request.user
form.save()
return HttpResponseRedirect('/profile/')
else:
form = formtodos() # An unbound form
context = {'form':form}
return render_to_response('todo.html', context, context_instance=RequestContext(request))
非常感謝你讓我非常沮喪,而我錯過了這個:)你能否提供一些文件鏈接,我可以很容易理解這個概念:) – Shazib
你需要的一切應該在django文檔中:https://docs.djangoproject.com/en/dev/topics/forms/modelforms/基本上,表單中的字段將1-1映射到模型的屬性。當你爲todoss對象創建一個表單時(順便說一句,你應該使用標準的命名約定並將其改爲Todo),你排除'user'字段(顯然你希望它是'request.user',並且不希望用戶能夠改變這一點)。但是,當你運行form.save()時,表單中缺少導致錯誤的用戶數據。提供這個可以避免錯誤。 – scytale