Estoy usando modelos para obtener listas de reproducción y sus elementos. También contiene script de inicio de sesión. Estoy intentando configurar el usuario actualmente conectado al modelo de usuario. Esto se puede ver lo que he publicado antes How to avoid this dropdown combo box?valueError en modelos
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'}
Aquí es la vista lista de reproducción:
archivodef 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
página de error:
https://gist.github.com/1576186
Pero estoy 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
Aquí es mi settings.py https://gist.github.com/1575856
Gracias.
Por si acaso, verifique que tiene el valor predeterminado [TEMPLATE_CONTEXT_PROCESSORS] (https://docs.djangoproject.com/en/1.3/ref/settings/#template-context-processors) en su 'settings.py' –
versión de Django estás usando? Intenta 'datos.user_id = request.user.id' en su lugar. – Alasdair
@ César He publicado el enlace para settings.py en mi sección de preguntas. – rnk