Django: related_name attribute (DatabaseError) -
i have problem models.
class message(models.model): user = models.foreignkey(userprofile) text = models.textfield(max_length=160) voting_users = models.manytomanyfield(userprofile) def __unicode__(self): return self.text
and
class userprofile(models.model): user = models.foreignkey(user, unique=true) def __unicode__(self): return self.user.username
i error when try call message.voting_users:
message: accessor m2m field 'voting_users' clashes related field 'userprofile.message_set'. add related_name argument definition 'voting_users'.
i'm new django , don't how should use related_name attribute.
as says, voting_users
, needs related_name argument because clashes defined related field, message_set
(an automagic property created django first foreignkey
, message.user
)
http://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.foreignkey.related_name
you must supply related name argument either of foreignkey / m2m fields define unique accessor reverse relationship.
for example, reverse relationship message
model on userprofile
userprofile.message_set
. if have 2 foreignkey
's you're attempting create 2 different reverse relationships same userprofile.message_set
method.
user = models.foreignkey(userprofile, related_name="message_user") ... # create userprofile.message_user manager. userprofile.message_user.all() # pull message user has created. userprofile.message_set.all() # pull messages user has voted on.
Comments
Post a Comment