Sto utilizzando modelform per ottenere la playlist e i relativi elementi. Contiene anche script di accesso. Sto cercando di impostare l'utente attualmente connesso al modello utente. Si può vedere questa cosa che ho postato prima How to avoid this dropdown combo box?valueError in modelforms
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'}
Ecco la vista playlist:
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 di file:
https://gist.github.com/1576136
pagina di errore:
https://gist.github.com/1576186
Ma sto 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
Ecco il mio settings.py https://gist.github.com/1575856
Grazie.
Nel caso, verificare di avere il [TEMPLATE_CONTEXT_PROCESSORS] predefinito (https://docs.djangoproject.com/en/1.3/ref/settings/#template-context-processors) in 'settings.py' –
Quale versione di Django stai usando? Prova 'dati.user_id = request.user.id' invece. – Alasdair
@ César Ho postato il link per settings.py nella mia sezione domande. – rnk