Django でログインしているユーザーに追加のフォームを添付する方法について質問があります。追加のフォームがログインしたユーザーに属し、フォームに入力したデータがログインしたユーザーのテーブルの下にあることを望みます。私は Django と Python を初めて使用します。しばらくお待ちください。これで何をしたいのかを正しく説明できることを願っています。
このビューに入力するデータは、ログインしているユーザーのみの下に置かれます 基本的に、このビューをログインしているユーザーのみにアタッチしたい 取得しているエラーは例外値です:
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))