|
|
|
|
@ -1,7 +1,7 @@
|
|
|
|
|
# Create your views here.
|
|
|
|
|
from django import forms
|
|
|
|
|
from django.contrib.auth import get_user_model
|
|
|
|
|
from django.http import HttpResponseRedirect
|
|
|
|
|
from django.utils.decorators import method_decorator
|
|
|
|
|
from django.views.decorators.csrf import csrf_protect
|
|
|
|
|
from django.views.generic.edit import FormView
|
|
|
|
|
|
|
|
|
|
from blog.models import Article
|
|
|
|
|
@ -13,6 +13,10 @@ class CommentPostView(FormView):
|
|
|
|
|
form_class = CommentForm
|
|
|
|
|
template_name = 'blog/article_detail.html'
|
|
|
|
|
|
|
|
|
|
@method_decorator(csrf_protect)
|
|
|
|
|
def dispatch(self, *args, **kwargs):
|
|
|
|
|
return super(CommentPostView, self).dispatch(*args, **kwargs)
|
|
|
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs):
|
|
|
|
|
article_id = self.kwargs['article_id']
|
|
|
|
|
|
|
|
|
|
@ -23,16 +27,6 @@ class CommentPostView(FormView):
|
|
|
|
|
def form_invalid(self, form):
|
|
|
|
|
article_id = self.kwargs['article_id']
|
|
|
|
|
article = Article.objects.get(pk=article_id)
|
|
|
|
|
u = self.request.user
|
|
|
|
|
|
|
|
|
|
if self.request.user.is_authenticated:
|
|
|
|
|
form.fields.update({
|
|
|
|
|
'email': forms.CharField(widget=forms.HiddenInput()),
|
|
|
|
|
'name': forms.CharField(widget=forms.HiddenInput()),
|
|
|
|
|
})
|
|
|
|
|
user = self.request.user
|
|
|
|
|
form.fields["email"].initial = user.email
|
|
|
|
|
form.fields["name"].initial = user.username
|
|
|
|
|
|
|
|
|
|
return self.render_to_response({
|
|
|
|
|
'form': form,
|
|
|
|
|
@ -45,13 +39,7 @@ class CommentPostView(FormView):
|
|
|
|
|
|
|
|
|
|
article_id = self.kwargs['article_id']
|
|
|
|
|
article = Article.objects.get(pk=article_id)
|
|
|
|
|
if not self.request.user.is_authenticated:
|
|
|
|
|
email = form.cleaned_data['email']
|
|
|
|
|
username = form.cleaned_data['name']
|
|
|
|
|
|
|
|
|
|
user = get_user_model().objects.get_or_create(
|
|
|
|
|
username=username, email=email)[0]
|
|
|
|
|
# auth.login(self.request, user)
|
|
|
|
|
comment = form.save(False)
|
|
|
|
|
comment.article = article
|
|
|
|
|
|
|
|
|
|
|