Advertisement
Guest User

Untitled

a guest
Feb 7th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.31 KB | None | 0 0
  1. ##models.py
  2. #...
  3. from django.db import models
  4. from wagtail.core.fields import RichTextField
  5.  
  6. @register_snippet
  7. class Comment(models.Model):
  8.     name = models.CharField(max_length=255, verbose_name="Имя", null=True, )
  9.     comment = RichTextField(verbose_name = "Отзыв", null=True)
  10.  
  11. ##views.py
  12. from django.views.generic.edit import CreateView
  13. ...
  14. class AjaxableResponseMixin:
  15.     """
  16.    Mixin to add AJAX support to a form.
  17.    Must be used with an object-based FormView (e.g. CreateView)
  18.    """
  19.     success_url = '/'
  20.     def form_invalid(self, form):
  21.         response = super().form_invalid(form)
  22.         if self.request.is_ajax():
  23.            
  24.             return JsonResponse(form.errors, status=400)
  25.         else:
  26.             return response
  27.  
  28.     def form_valid(self, form):
  29.        
  30.         response = super().form_valid(form)
  31.         if self.request.is_ajax():
  32.             data = {
  33.                 'status': 'Success!',
  34.             }
  35.             return JsonResponse(data)
  36.         else:
  37.            
  38.             return self.render_to_response(self.get_context_data(form=form))
  39.  
  40. class CommentCreate(AjaxableResponseMixin, CreateView):
  41.     model = Comment
  42.     fields = ['name', 'comment']
  43.  
  44. #urls.py
  45. ...
  46. urlpatterns = [
  47. ...
  48.     url(r'^some/url/$', CommentCreate.as_view()),
  49. ...
  50. ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement