NoReverseMatch位于/ product / pussyes / 找不到’basket_adding’的相反内容。’basket_adding’不是有效的视图函数或模式名称。 请求方法:GET请求URL:http : //127.0.0.1 :8000/product/pussyes/ Django版本:1.11异常类型:NoReverseMatch异常值: 找不到’basket_adding’的相反内容。’basket_adding’不是有效的视图函数或模式名称。
NoReverseMatch位于/ product / pussyes /
找不到’basket_adding’的相反内容。’basket_adding’不是有效的视图函数或模式名称。
请求方法:GET请求URL:http : //127.0.0.1 :8000/product/pussyes/ Django版本:1.11异常类型:NoReverseMatch异常值:
ajax和jquery错误
url(r'^basket_adding/$', basket_adding, name="basket_adding"),
def product_view(request, slug=None): instance = get_object_or_404(Product, slug=slug) title = instance.name session_key = request.session.session_key if not session_key: request.session.cycle_key() forms = SubscribersForm(request.POST or None) if forms.is_valid(): instance = forms.save(commit=False) instance.save() return redirect("/") context = { "instance": instance, "title": title, "forms": forms, } return render(request, 'product.html', context)
def basket_adding(request): return_dict = {} session_key = request.session.session_key data = request.POST product_id = data.get('product_id') product_price = data.get('product_price') new_product = ProducInBasket.objects.get(session_key=session_key, product_id=product_id, product_price=product_price, quantity=quantity) return JsonResponse(return_dict)
class ProducInBasket(models.Model): session_key = models.CharField(max_length=128, default=None) order = models.ForeignKey(Order, blank=True, null=True, default=None) product = models.ForeignKey(Product, blank=True, null=True, default=None) count_of_goods = models.IntegerField(default=1) price_per_item = models.DecimalField(max_digits=10, decimal_places=2, default=0) total_price = models.DecimalField(max_digits=19, decimal_places=2, default=0) is_active = models.BooleanField(default=True) publish = models.DateField(auto_now=False, auto_now_add=True) timestamp = models.DateTimeField(auto_now=False, auto_now_add=True) def __str__(self): return "{0}:|:{1}".format(self.price_per_item,self.order) class Meta: ordering = ["-timestamp"] verbose_name = 'Product in Basket' verbose_name_plural = 'Products in Basket'
<form class="form-group formselect" action="{% url 'basket_adding' %}"> {% csrf_token %} <label>Quantity</label> <select class="form-control litlwidth" id="sel1" > <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> <option value="6">6</option> <option value="7">7</option> <option value="8">8</option> <option value="9">9</option> <option value="10">10</option> </select> <br> <button id="submit_btn" class="cartadd morewidth" title="Add to Cart" type="submit" >Add to Cart</button> <p class="info hidden" data-product_id="{{ instance.id }}" data-product_name="{{ instance.name }}" data-product_price="{{ instance.price }}"></p> </form>
$(document).ready(function() { var newcount = 0; var allprice = 0; var btnn = $("#submit_btn"); var form = $(".formselect"); form.on('submit', function(e) { e.preventDefault(); var product_id = $(".info").data("product_id"); var product_name = $(".info").data("product_name"); var price = $(".info").data("product_price"); var quantity = $("#sel1").val(); var full_price_per_item = (price * quantity) newprice = allprice + (price * quantity ); allprice = newprice newcount++; $(".count").html(newcount); $("#price").html(newprice); //////////////////////////////////////////////// var data = {}; ///////////////////////////// data.product_id = product_id; data.product_name = product_name; data.product_price = price; data.product_quantity = quantity; data.product_newprice = newprice; data.product_newcount = newcount; data.product_allprice = allprice; ///////////////////////////// var csrf_token = $('.formselect [name="csrfmiddlewaretoken"]').val(); data["csrfmiddlewaretoken"] = csrf_token; var url = form.attr("action"); console.log(data) $.ajax({ url: url, type: 'POST', data: data, cache: true, success: function(data){ console.log("OK"); }, error: function(){ console.log("ERROR"); }, });
您使用的namespace是订单应用的网址。您必须将其提供namespace给url标记。
namespace
{% url 'orders:basket_adding' %} # \____/ \___________/ # | | # namespace url name