Issue
I am trying to design a chatting app using Django rest at the backend
My Model
class MessageModel(models.Model):
message = models.CharField(max_length=200)
msg_from = models.ForeignKey(UserModel,on_delete=models.CASCADE)
msg_to = models.ForeignKey(UserModel,on_delete=models.CASCADE)
but it gives the following error
SystemCheckError: System check identified some issues:
ERRORS:
message_api.MessageModel.msg_from: (fields.E304) Reverse accessor for 'message_api.MessageModel.msg_from' clashes with reverse accessor for 'message_api.MessageModel.msg_to'.
HINT: Add or change a related_name argument to the definition for 'message_api.MessageModel.msg_from' or 'message_api.MessageModel.msg_to'.
message_api.MessageModel.msg_to: (fields.E304) Reverse accessor for 'message_api.MessageModel.msg_to' clashes with reverse accessor for 'message_api.MessageModel.msg_from'.
HINT: Add or change a related_name argument to the definition for 'message_api.MessageModel.msg_to' or 'message_api.MessageModel.msg_from'.
How can I design a database table for chatting?
I am using MySQL database.
Solution
class MessageModel(models.Model):
message = models.CharField(max_length=200)
msg_from = models.ForeignKey(UserModel,on_delete=models.CASCADE, related_name="msg_sender")
msg_to = models.ForeignKey(UserModel,on_delete=models.CASCADE,related_name="msg_reciever")
Good advice from Willem also don’t use the
Model
suffix, instead name your models "Message" and "User"
Answered By – oruchkin
This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0