Django Foreignkey reverse access when parent model has multiple Foreignkeys

Viewed 282

I am using the standard Django User-model and wrote this cutom Model:

class Messages(models.Model):
    sender = models.ForeignKey(User, related_name="sender", on_delete=models.CASCADE)
    receiver = models.ForeignKey(User, related_name="receiver", on_delete=models.CASCADE)
    content = models.TextField()
    date = models.DateTimeField(default=timezone.now)

Now, given a User-object user i want to access all the Messages he either sent or received. I tried: user.messages_set.all() but i am getting the following Error: 'User' object has no attribute 'messages_set'. How do i fix this?

Thanks for your Answers!

1 Answers

Cause that you defined related_name='sender'. If you use related name, you must use it for backward queries. You can use this code for access your use messages:

user.sender.all()

You can use more detail about related_name here

Related