Guest User

Untitled

a guest
Apr 14th, 2021
10
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. class LikeToggleView(AjaxResponseMixin, JSONResponseMixin, FormView):
  2.  
  3. http_method_names = ('post', )
  4. form_class = LikeForm
  5. product = None
  6. success_url = '/thanks/'
  7. template_name = 'products/product_detail.html'
  8.  
  9.  
  10. @csrf_exempt
  11. def dispatch(self, request, *args, **kwargs):
  12. product_id = kwargs['product_pk']
  13. try:
  14. self.product = Product.objects.get(id=product_id)
  15. except Product.DoesNotExist:
  16. raise Http404()
  17. return super().dispatch(request, *args, **kwargs)
  18.  
  19.  
  20. urlpatterns = [
  21. path('', views.CategoryListView.as_view(), name='category_list'),
  22. url(r'^cart/$', views.CartView.as_view(), name='cart'),
  23. url(r'^(?P<product_pk>[0-9]+)/like/$', views.LikeToggleView.as_view(), name='like_toggle'),
  24. url(r'^(?P<product_pk>[0-9]+)/add/to/cart/$', views.AddToCartView.as_view(), name='add_to_cart'),
  25. url(r'^(?P<category_slug>.+)/(?P<product_slug>.+)/$', views.ProductDetailView.as_view(), name='product_detail'),
  26. url(r'^(?P<category_slug>.+)/$', views.CategoryDetailView.as_view(), name='category_detail'),
  27. url(r'^(?P<category_slug>.+)/$', views.CategoryListView.as_view(), name='category_list'),
  28.  
  29.  
  30. ]
  31.  
  32.  
  33.  
  34. class LikeForm(forms.Form):
  35. user = forms.ModelChoiceField(User.objects.all(), required=False)
  36. product = forms.ModelChoiceField(Product.objects.all())
  37. ip = forms.GenericIPAddressField(required=False)
  38.  
  39.  
  40.  
  41. <form method="post" action="{% url 'products:like_toggle' product.id %} ">
  42. {% csrf_token %}
  43. {{ form }}
  44. <input type="submit" value="Submit">
  45. </form>
Advertisement
Add Comment
Please, Sign In to add comment