私はプレイリストとそのアイテムを取得するためにモデルフォームを使用しています。また、ログインスクリプトも含まれています。現在ログインしているユーザーをユーザーモデルに設定しようとしています。modelformsのvalueError
def playlistview(request):
if request.method == 'POST':
form = playlistform(request.POST)
if form.is_valid():
data = form.save(commit=False)
data.user = request.user
data.save()
return render_to_response('playlist.html', {'data': data})
else:
form = playlistform()
return render_to_response('playlist.html', {'form': form, 'user': request.user}, context_instance=RequestContext(request))
Playlist.htmlファイル:
https://gist.github.com/1576136
エラーページ:あなたは私がここで How to avoid this dropdown combo box?
class playlistmodel(models.Model):
user = models.ForeignKey(User)
title = models.CharField(max_length=200)
def __unicode__(self):
return self.title
class itemsmodel(models.Model):
playlist = models.ForeignKey(playlistmodel)
item = models.TextField()
def __unicode(self):
return self.item
class playlistform(ModelForm):
class Meta:
model = playlistmodel
exclude = {'user'}
class itemsform(ModelForm):
class Meta:
model = itemsmodel
exclude = {'playlist'}
前に掲載しました。この事は、プレイリストビューがある見ることができます
https://gist.github.com/1576186
しかし、私はValueError
を取得しています:
Exception Type: ValueError Exception Value: Cannot assign "<django.utils.functional.SimpleLazyObject object at 0x7f0234028f50>": "playlistmodel.user" must be a "User" instance
Traceback: Local vars --- data.user = request.user
はここhttps://gist.github.com/1575856
ありがとう私のsettings.pyです。
あなたの 'settings.py' –
にデフォルトの[TEMPLATE_CONTEXT_PROCESSORS](https://docs.djangoproject.com/en/1.3/ref/settings/#template-context-processors)があることを確認してくださいあなたはDjangoのバージョンを使用していますか? 'データを試してください。代わりにuser_id = request.user.id' – Alasdair
@César私は質問セクションにsettings.pyのリンクを掲載しました。 – rnk