Как получить 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)