Strona główna Polish Python Coders Group
   Strona główna   Pomoc Zaloguj się Rejestracja  
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Aktualności: ##python.pl na FreeNode - ogarniamy zlot na Mazurach lub Podlasiu :>?
Szukaj Szukaj
Strony: [1]   Do dołu
Drukuj
Wątek: [b]Reverse for 'cart_add' with arguments '('',)' not found. 1 pattern(s) tried:  (Przeczytany 66 razy)
« : 09:30 10/08/18 »
GlovesMaker Offline
Hello World!

Zobacz profil
*

Reputacja: 0
Wiadomości: 1


Reverse for 'cart_add' with arguments '('',)' not found. 1 pattern(s) tried: ['cart/add/(?P<product_id>\\d+)/$']

I am creating an online shopping mall but when I try to load my product page I get the following error. I believe the error is pointing to my namespace but every way I try to correct it, I still get the error.

Tworzę sklep internetowy ale kiedy próbuje ładować moje produkty (wybrane - te które chce mieć w koszyku na zakupy) otrzymuję powyższy błąd. Wydaje mi się, że ten błąd wywołuje namespace ale jakkolwiek tego nie zmieniam, błąd występuję nadal.

jeżeli ktoś wie jak rozwiązać problem to dajcie znać (na dole są błędy z konsoli)

it is my file card.py
to jest mój plik card.py


from decimal import Decimal
from django.conf import settings
from apka.models import Product

class Cart(object):
    
    def __init__(self, request):
        self.session = request.session
        cart = self.session.get(settings.CART_SESSION_ID)
        if not cart:
            cart = self.session[settings.CART_SESSION_ID] = {}
        self.cart = cart

    def add(self, product, quantity=1, update_quantity=False):

        product_id = str(product.id)
        if product_id not in self.cart:
            self.cart[product_id] = {'quantity': 0, 'price': str(product.price)}
        if update_quantity:
            self.cart[product_id]['quantity'] = quantity
        else:
            self.cart[product_id]['quantity'] += quantity
        self.save()

    def save(self):
        self.session[settings.CART_SESSION_ID] = self.cart
        self.session.modified = True

    def remove(self, product):
        product_id = str(product.id)
        del self.cart[product_id]
        self.save()

    def __iter__(self):
        product_ids = self.cart.keys()
        products = Product.objects.filter(id__in=product_ids)
        for product in products:
            self.cart[str(product.id)]['product'] = product
        for item in self.cart.values():
            item['price'] = Decimal(item['price'])
            item['total_price'] = item['price'] * item['quantity']
            yield item
    def __len__(self):
        return sum(item['quantity'] for item in self.cart.values())
    def get_total_price(self):
        return sum(Decimal(item['price']) * item['quantity'] for item in self.cart.values())
    def clear(self):
        del self.session[settings.CART_SESSION_ID]
        self.session.modified = True

it is my file form.py:
mój plik form.py


from django import forms

PRODUCT_QUANTITY_CHOICES = [(i, str(i)) for i in range(1, 11)]

class CartAddProductForm(forms.Form):
    quantity = forms.TypedChoiceField(choices=PRODUCT_QUANTITY_CHOICES, coerce=int)
    update = forms.BooleanField(required=False, initial=False, widget=forms.HiddenInput)


I have two apps. cart and apka. Here is my views for the cart app:

@require_POST
def cart_add(request, product_id):
    cart = Cart(request)
    product = get_object_or_404(Product, id=product_id)
    form = CartAddProductForm(request.POST)
    if form.is_valid():
        cd = form.cleaned_data
        cart.add(product=product, quantity=cd['quantity'], update_quantity=cd['update'])
    return redirect('cart:cart_detail')

def cart_remove(request, product_id):
    cart = Cart(request)
    product = get_object_or_404(Product, id=product_id)
    cart.remove(product)
    return redirect('cart:cart_detail')

def cart_detail(request):
    cart = Cart(request)
    return render(request, 'cart/detail.html', {'cart': cart})

And here is the urls.py for the cart app
i tutaj plik urls.py dla aplikacji cart


urlpatterns = [
    url(r'^$', views.cart_detail, name='cart_detail'),
    url(r'^add/(?P<product_id>\d+)/$', views.cart_add, name='cart_add'),
    url(r'^remove/(?P<product_id>\d+)/$', views.cart_remove, name='cart_remove'),
]

Here is my views for the cart app: - and after adding bold elements, the application stopped working

Tutaj jest mój widok dla aplikacji cart i kiedy dodałem podrobione elementy, aplikacja przestała działać (nie widać "kosza")



from django.shortcuts import render, get_object_or_404
from .models import Category, Product
# Create your views here.
from cart.forms import CartAddProductForm

def product_list(request, category_slug=None):
    category = None
    categories = Category.objects.all()
    products = Product.objects.filter(available=True)

    if category_slug:
        category = get_object_or_404(Category, slug=category_slug)
        products = products.filter(category=category)
    return render(request, 'apka/product/list.html', {'category': category, 'categories': categories, 'products': products})
                                                    
                                      
def product_detail(request, id, slug):
    product = get_object_or_404(Product, id=id, slug=slug, available=True)
   cart_product_form = CartAddProductForm()
    return render(request, 'apka/product/detail.html', {'product': product, 'cart_product_form': cart_product_form})




And the urls.py for my project
i plik urls.py dla mojego projektu

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^cart/', include('cart.urls', namespace='cart')),
    url(r'^', include('apka.urls', namespace='apka')),


Here is the template where the error is being raised
tutaj jest plik template gdzie występuje błąd

{% extends "apka/base.html" %}
{% load static %}


{% block title %}
   {% if category %}{{ category.title }}{% else %}Produkty{% endif %}
{% endblock %}

{% block content %}
<h2>Dział sprzedaży: <a href="{{ product.category.get_absolute_url }}"> {{product.category}}</a></h2>
            
         
   <h1>{{ product.name }}</h1>
      <img src={% if product.image %}{{ product.image.url }}{% endif %}>
      
      
   <p> {{product.price }} PLN </p>
   {{ product.description| linebreaks }}
   <form action="{% url 'cart:cart_add' product.id %}" method='post'>
   {{ cart_product_form }}
   {% csrf_token %}
   <input type="submit" value="dodaj do kosza">
   </form>
{% endblock %}

błąd z http://localhost:8007/cart/
error

NoReverseMatch at /cart/
Reverse for 'cart_add' with arguments '('',)' not found. 1 pattern(s) tried: ['cart/add/(?P<product_id>\\d+)/$']
Request Method:   GET
Request URL:   http://localhost:8007/cart/
Django Version:   1.11.3
Exception Type:   NoReverseMatch
Exception Value:   
Reverse for 'cart_add' with arguments '('',)' not found. 1 pattern(s) tried: ['cart/add/(?P<product_id>\\d+)/$']
Exception Location:   C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\urls\resolvers.py in _reverse_with_prefix, line 497
Python Executable:   C:\Users\FBI\Envs\srodowisko_wirtualne\Scripts\python.exe
Python Version:   3.6.0
Python Path:   
['C:\\Users\\FBI\\Envs\\srodowisko_wirtualne',
 'C:\\Users\\FBI\\Envs\\srodowisko_wirtualne\\Scripts\\python36.zip',
 'C:\\Users\\FBI\\Envs\\srodowisko_wirtualne\\DLLs',
 'C:\\Users\\FBI\\Envs\\srodowisko_wirtualne\\lib',
 'C:\\Users\\FBI\\Envs\\srodowisko_wirtualne\\Scripts',
 'c:\\users\\fbi\\appdata\\local\\programs\\python\\python36\\Lib',
 'c:\\users\\fbi\\appdata\\local\\programs\\python\\python36\\DLLs',
 'C:\\Users\\FBI\\Envs\\srodowisko_wirtualne',
 'C:\\Users\\FBI\\Envs\\srodowisko_wirtualne\\lib\\site-packages']
Server time:   Pt, 10 Sie 2018 09:10:07 +0200




Błąd z konsoli:
error

August 10, 2018 - 09:09:58
Django version 1.11.3, using settings 'projekt.settings'
Starting development server at http://127.0.0.1:8007/
Quit the server with CTRL-BREAK.
[10/Aug/2018 09:10:01] "GET /3/wilfa-svart-wscg-2-mlynek-automatyczny/ HTTP/1.1" 200 1349
[10/Aug/2018 09:10:07] "POST /cart/add/3/ HTTP/1.1" 302 0
Internal Server Error: /cart/
Traceback (most recent call last):
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\core\handlers\exception.py", line 41, in inner
    response = get_response(request)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\core\handlers\base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\core\handlers\base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\cart\views.py", line 25, in cart_detail
    return render(request, 'cart/detail.html', {'cart': cart})
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\shortcuts.py", line 30, in render
    content = loader.render_to_string(template_name, context, request, using=using)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\loader.py", line 68, in render_to_string
    return template.render(context, request)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\backends\django.py", line 66, in render
    return self.template.render(context)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\base.py", line 207, in render
    return self._render(context)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\base.py", line 199, in _render
    return self.nodelist.render(context)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\base.py", line 990, in render
    bit = node.render_annotated(context)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\base.py", line 957, in render_annotated
    return self.render(context)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\loader_tags.py", line 177, in render
    return compiled_parent._render(context)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\base.py", line 199, in _render
    return self.nodelist.render(context)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\base.py", line 990, in render
    bit = node.render_annotated(context)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\base.py", line 957, in render_annotated
    return self.render(context)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\loader_tags.py", line 72, in render
    result = block.nodelist.render(context)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\base.py", line 990, in render
    bit = node.render_annotated(context)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\base.py", line 957, in render_annotated
    return self.render(context)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\defaulttags.py", line 216, in render
    nodelist.append(node.render_annotated(context))
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\base.py", line 957, in render_annotated
    return self.render(context)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\defaulttags.py", line 529, in render
    return self.nodelist.render(context)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\base.py", line 990, in render
    bit = node.render_annotated(context)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\base.py", line 957, in render_annotated
    return self.render(context)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\template\defaulttags.py", line 458, in render
    url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\urls\base.py", line 91, in reverse
    return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
  File "C:\Users\FBI\Envs\srodowisko_wirtualne\lib\site-packages\django\urls\resolvers.py", line 497, in _reverse_with_prefix
    raise NoReverseMatch(msg)
django.urls.exceptions.NoReverseMatch: Reverse for 'cart_add' with arguments '('',)' not found. 1 pattern(s) tried: ['cart/add/(?P<product_id>\\d+)/$']
[10/Aug/2018 09:10:08] "GET /cart/ HTTP/1.1" 500 174138
Zapisane
Strony: [1]   Do góry
Drukuj
Skocz do:  

© 2007 - 2018 Polish Python Coders Group
Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines | Theme by PixelSlot