flangr/flangr/posts/views.py

29 lines
905 B
Python

from django.views.generic import DetailView, CreateView
from django.views.generic.edit import ModelFormMixin
from django.forms import modelform_factory
from django.http import HttpResponseRedirect
# Create your views here.
from .models import Post, Comment
class PostDetailView(DetailView, ModelFormMixin):
model = Post
form_class = modelform_factory(Comment, fields=("comment",))
success_url = "#"
def form_valid(self, form):
comment = form.save(commit=False)
comment.post = self.object
comment.user = self.request.user
comment.save()
return HttpResponseRedirect(self.get_success_url())
def post(self, request, *args, **kwargs):
self.object = self.get_object()
form = self.form_class(request.POST)
if form.is_valid:
return self.form_valid(form)
else:
return self.form_invalid(form)