Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class LikeToggleView(AjaxResponseMixin, JSONResponseMixin, FormView):
- http_method_names = ('post', )
- form_class = LikeForm
- product = None
- success_url = '/thanks/'
- template_name = 'products/product_detail.html'
- @csrf_exempt
- def dispatch(self, request, *args, **kwargs):
- product_id = kwargs['product_pk']
- try:
- self.product = Product.objects.get(id=product_id)
- except Product.DoesNotExist:
- raise Http404()
- return super().dispatch(request, *args, **kwargs)
- urlpatterns = [
- path('', views.CategoryListView.as_view(), name='category_list'),
- url(r'^cart/$', views.CartView.as_view(), name='cart'),
- url(r'^(?P<product_pk>[0-9]+)/like/$', views.LikeToggleView.as_view(), name='like_toggle'),
- url(r'^(?P<product_pk>[0-9]+)/add/to/cart/$', views.AddToCartView.as_view(), name='add_to_cart'),
- url(r'^(?P<category_slug>.+)/(?P<product_slug>.+)/$', views.ProductDetailView.as_view(), name='product_detail'),
- url(r'^(?P<category_slug>.+)/$', views.CategoryDetailView.as_view(), name='category_detail'),
- url(r'^(?P<category_slug>.+)/$', views.CategoryListView.as_view(), name='category_list'),
- ]
- class LikeForm(forms.Form):
- user = forms.ModelChoiceField(User.objects.all(), required=False)
- product = forms.ModelChoiceField(Product.objects.all())
- ip = forms.GenericIPAddressField(required=False)
- <form method="post" action="{% url 'products:like_toggle' product.id %} ">
- {% csrf_token %}
- {{ form }}
- <input type="submit" value="Submit">
- </form>
Advertisement
Add Comment
Please, Sign In to add comment