How to list a series of Objects Models in another model?
I'm creating a chatbot, with two Models. A Message model which will store all messages sent by all users to the bot, as raw data without filters. A second model representing a chat, which has to be private and specific to the user.
Therefore, I need to store messages within this chat, but entries related to the chat user only. So, on the one hand I have a model with one object is equal to one message, on the other hand I want a second model storing only user's content messages.
class Message(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True) room = models.CharField(max_length=1000) media = models.BooleanField(default=False) mediasrc = models.CharField(max_length=1000, default=None) class Chat(models.Model): userchat = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True) name = models.CharField(max_length=200, blank=True) group = models.BooleanField(default=False) messages = models.ManyToManyField(Message, blank=True, related_name='userchat') last_modified = models.DateTimeField(auto_now=True)
My issue is that this second model (the Chat's ones) is listing all existing messages. I need to specify a filter for the ManyToManyField.
Using Django relations you can get related
Message objects to
Chat object with simple method call:
chat = Chat.objects.get(id=1) # get chat object of your choice chat.messages.all() # returns all messages - only related to that Chat object