Tengo un modelo definido de esta manera:objeto 'RelatedManager' no tiene atributo
class UserDetail(models.Model):
user = models.ForeignKey(User, db_index=True, unique=True, related_name='details')
favourites = models.ManyToManyField(Article, related_name='favourited_by', blank=True)
Y yo estoy tratando de hacer algo como esto:
article = get_object_or_404(Article, pk=id)
request.user.details.favourites.add(article)
Por qué no está funcionando?
que estoy recibiendo este error:
'RelatedManager' object has no attribute 'favourites'
supongo details
no es el tipo correcto, pero ¿por qué no? ¿Y cómo puedo realizar una consulta como esa?
¡Oh! Eso tiene mucho más sentido ahora. Creo que fue obvio para * me * que un usuario solo tiene un 'UserDetail', pero supongo que no se especifica en ningún lado. Gracias. – mpen
Si cambió su modelo para que en lugar de usar una clave externa, utilice OneToOneField, podría hacer exactamente lo que esperaba. OneToOneFields son como ForeignKeys, excepto que dado que su único objeto relacionado es Django, le dará acceso al objeto directamente en lugar de a través de un administrador relacionado. Ver https://docs.djangoproject.com/en/dev/ref/models/fields/#onetoonefield – mbargiel