Как получить POST и создать сообщение с помощью DetailView на Django

У меня есть модель Post и модель Message.

Я хочу создать сообщение в одном посте и просмотреть его.

Я не могу придумать, как я могу сделать это, используя класс DetailView.

Как я могу это сделать?

Весь мой код

models.py

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    date_posted = models.DateTimeField(auto_now_add=True)
    author = models.ForeignKey(User,on_delete=models.CASCADE)
    topic = models.ForeignKey(Topic,on_delete=models.SET_NULL,null=True)

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('post-detail',kwargs={'pk':self.pk})


class Message(models.Model):
    user = models.ForeignKey(User,on_delete=models.CASCADE) 
    post = models.ForeignKey(Post,on_delete=models.CASCADE)
    body = models.TextField()
    date_posted = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.body[0:50]

views.py

class PostDetailView(DetailView):
    model = Post

    def post(self, request, *args, **kwargs):
        message = Message(
            user = request.user,
            post = self.post,
            body = request.POST.get('body')
        )
        message.save()
        return super(PostDetailView,self).post(request, *args, **kwargs)
Вернуться на верх