Я пытаюсь получить специальные URL-адреса некоторых продуктов, которые есть на моей странице shop.html. У меня есть пять продуктов, которые я назвал «картами»: (Изера, Нелтарион, Ноздорму, Алекстраза, Малигос). У каждой карты должен быть выделенный URL (localhost: 8000 / card / 1 /, localhost: 8000 / card / 2 / и т. Д.). но вместо того, чтобы получить этот URL, django запустил мне это сообщение:
DoesNotExist at / card / 1 / card Соответствующий запрос не существует.
Я правильно импортировал "card" модели класса в свой views.py, на самом деле я справедливо использую card в функции фильтра для получения всех товаров в shop.html. пожалуйста, посмотрите мой views.py:
from django.shortcuts import render_to_response
from django.template import RequestContext
from dracoin.apps.synopticup.models import card
from dracoin.apps.home.forms import ContactForm,LoginForm
from django.core.mail import EmailMultiAlternatives
from django.contrib.auth import login,logout,authenticate
from django.http import HttpResponseRedirect
def index(request):
return render_to_response('home/index.html',context_instance=RequestContext(request))
def landing(request):
return render_to_response('home/landing.html',context_instance=RequestContext(request))
def shop(request):
tarj = card.objects.filter(status=True)
ctx = {'tarjetas':tarj}
return render_to_response('home/shop.html',ctx,context_instance=RequestContext(request))
def singleCard(request,id_tarj):
tarj = card.objects.get(id=id_tarj)
ctx = {'card':tarj}
return render_to_response('home/singleCard.html',ctx,context_instance=RequestContext(request))
вот мой urls.py:
url(r'^card/(?P<id_tarj>.*)/$','dracoin.apps.home.views.singleCard',name='vista_single_card'),
Моя импортированная модель:
class card(models.Model):
nombre = models.CharField(max_length=100)
descripcion = models.TextField(max_length=300)
status = models.BooleanField(default=True)
def __unicode__(self):
return self.nombre
Мой singleCard.html:
{% extends 'base.html' %}
{% block title %} Tarjeta {{card.nombre}} {% endblock %}
{% block content %}
<h1>{{ card.nombre }}</h1><br>
<p> {{ card.descripcion }}</p>
{% endblock %}
Я не знаю, есть ли у меня неправильная ссылка на класс "карты". Но я стараюсь применять другие ответы на этом форуме. Например:
В Django как я могу использовать objects.get, но возвращать None, если ничего не найдено?
соответствующий запрос не существует Ошибка в Django
Ошибка Django - соответствующий запрос не существует
Я не знаю, допущу ли я ошибку, применяя эти решения. В том числе пробую:
tarj = card.objects.filter(id=id_tarj)
Используя это, я получаю пустую страницу своего сайта ...
заранее прошу прощения за свой обширный вопрос и если я что-то упускаю.
Спасибо!!
Отвечая на wolendranh, у меня есть urls.py по приложению и основной urls.py.
Недавно я изучаю django вместе со мной, и я не могу понять, как я могу определить свой собственный непротиворечивый идентификатор в этом случае.
если это все еще полезно, я помещаю сюда трассировку, сгенерированную с ошибкой:
Environment:
Request Method: GET
Request URL: http://localhost:8000/card/1/
Django Version: 1.7
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin',
'django.contrib.admindocs',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'dracoin.apps.synopticup',
'dracoin.apps.home')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')
Traceback:
File "/home/draicore/project/multilevel/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
111. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/draicore/project/dracoin/dracoin/apps/home/views.py" in singleCard
24. tarj = card.objects.get(id=id_tarj)
File "/home/draicore/project/multilevel/local/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
92. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/draicore/project/multilevel/local/lib/python2.7/site-packages/django/db/models/query.py" in get
357. self.model._meta.object_name)
Exception Type: DoesNotExist at /card/1/
Exception Value: card matching query does not exist.
извините за продление этого вопроса.