1

私は問題があります:

DoesNotExist at /products//

Product matching query does not exist.

Request Method: GET

Django Version: 1.4
Exception Type: DoesNotExist
Exception Value:

Product matching query does not exist.

Exception Location: /Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/db/models/query.py in get, line 366
Python Executable: /usr/bin/python
Python Version: 2.7.1 

vews.py

def SpecificProduct(request, productslug):
    product = Product.objects.get(slug=productslug)
    context = {'product': product}
    return render_to_response('singleproduct.html',
                           context, context_instance=RequestContext(request))

singleproduct.html

{% extends "base.html" %}

{% block content %}
<div id = "singleproduct">
        <p>Name: {{ product }}</p>
        <p>Description: {{ product.en_description }}</p>
        <p>Description: {{ product.sp_description }}</p>

</div>
{% endblock %}

url.py

(r'^products/(?P<productslug>.*)/$', 'zakai.views.SpecificProduct'),

models.py

class Product(models.Model):
    en_name = models.CharField(max_length=100)
    sp_name = models.CharField(max_length=100)
    slug = models.SlugField(max_length=80)
    en_description = models.TextField(blank=True, help_text="Describe product in english")
    sp_description = models.TextField(blank=True, help_text="Describe product in spanish")
    photo = ThumbnailerImageField(upload_to="product_pic", blank=True)

    def __unicode__(self):
        return self.en_name    
4

1 に答える 1

0

URL にアクセス/products//しているため、URL にパラメーターの値がありませんproductslug。つまり、Productクエリが失敗します。

product = Product.objects.get(slug=productslug)

の(正しい)値がないためproductslugです。これを修正するには、URL パターンを次のように変更します。

(r'^products/(?P<productslug>.+)/$', 'zakai.views.SpecificProduct'),

productslugこれには、パラメーターに少なくとも 1 文字が必要です。さらに改善するには、文字のみを受け入れる次の正規表現を使用できます-(これはスラッグの構成要素です):

(r'^products/(?P<productslug>[-\w]+)/$', 'zakai.views.SpecificProduct'),
于 2012-07-17T09:49:52.037 に答える