soy nuevo con Django y mientras leo el código, no entiendo el atributo message_set del modelo Django (llamado Room):
def room(request, pk): room = Room.objects.get(id=pk) **room_messages = room.message_set.all()** participants = room.participants.all()porción de modelos:
class Room(models.Model): host = models.ForeignKey(User, on_delete=models.SET_NULL, null=True) topic = models.ForeignKey(Topic, on_delete=models.SET_NULL, null=True) name = models.CharField(max_length=200) description = models.TextField(null=True, blank=True) participants = models.ManyToManyField( User, related_name='participants', blank=True) updated = models.DateTimeField(auto_now=True) created = models.DateTimeField(auto_now_add=True) class Message(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) room = models.ForeignKey(Room, on_delete=models.CASCADE) body = models.TextField() updated = models.DateTimeField(auto_now=True) created = models.DateTimeField(auto_now_add=True)Si define una ForeignKey from Message to Room , Django agregará una relación inversa al modelo Room a sus Message s relacionados. Por defecto esta relación se llama modelname _set con modelname el nombre del origen del modelo. Puede especificar otro nombre anulando el parámetro related_name=… [Django-doc] .
Si accede a la relación a la inversa, obtiene todos los objetos Message con room como espacio, una consulta equivalente a room.message_set.all() es Message.objects.filter(room=room) .