Как создать экземпляр модели

Ок, у меня есть две модели (Room & Message) и модель сообщений является дочерней по отношению к room. поэтому я хотел добавить раздел комментариев, где пользователь может комментировать темы других комнат. к сожалению, я попробовал этот код здесь, и django говорит; (Невозможно присвоить "(<Room: MYSQL Triggers>,)": "Message.room" должен быть экземпляром "Room"). То есть я не понимаю этого. пожалуйста, помогите мне разобраться, если можете.

        #room model
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)
    updated = models.DateTimeField(auto_now=True)
    created = models.DateTimeField(auto_now_add=True)

    class Meta:
    ordering = ['-updated', '-created']

    def __str__(self):
    return self.name

#message model
class Message(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, default=1)
     
    room = models.ForeignKey(Room, on_delete=models.CASCADE)
    body = models.TextField()
    updated = models.DateTimeField(auto_now=True)
    created = models.DateTimeField(auto_now_add=True)
   
    def __str__(self):
         return self.body
  

#ШАБЛОН ПРОСМОТРА

def room(request , pk):
    room = Room.objects.get(id=pk),

    comments = Message.objects.filter(room=pk).order_by('-created')  #get comments
    comments_no = comments.count() #count number of comments
    #create comments

    if request.method == 'POST':
    #The problem seems to be here, but i don't understand how to fix it.
    messaging = Message.objects.create(
        host = request.user,
        room = room,
        body = request.POST.get('body')
    )
    return redirect('room', id=room.id)

    context = {'room': room, 'comments':comments, 'noofcomm':comments_no}

    return render(request, 'base/rooms.html', context)

Вы должны передать объект Room, а не Room pk. Или используйте ORM Lookup от Django:

    comments = Message.objects.filter(room__id=pk).order_by('-created')  #get comments
Вернуться на верх