【发布时间】:2014-12-09 09:52:22
【问题描述】:
我过去曾问过如何从您所说的 ID 开始生成具有相似特征的 url,最好使用 slugs 来做到这一点。这次我想用 slugs 生成 dinamics url。我的目标是获得这个结果:
我有五种产品,我在 models.py 中命名为卡片(Ysera、Neltharion、Nozdormu、Alexstrasza、Malygos)。我需要每个产品的相应网址:
localhost:8000/card/ysera
localhost:8000/card/neltharion
localhost:8000/card/nozdormu ...等
我尝试生成这些 url,但我不知道我是否很好地应用了命令,或者我不知道如何指定 id 卡,如卡的主要名称(ysera、neltharion...) .我试图按照这个社区中发布的答案有点盲目,这是我的“重新配置”:
这里是我的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 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, slug, id):
try:
tarj = card.objects.get(slug=slug, id=id_tarj)
except ObjectDoesNotExist:
tarj = get_object_or_404(card, id=id_tarj)
return render_to_response('home/singleCard.html',ctx,context_instance=RequestContext(request))
我的 urls.py(我有一个应用程序的 urls.py 和主要的 urls.py):
url(r'^card/(?P<slug>[-\w]+)/(?P<id_tarj>\d+)/$','dracoin.apps.home.views.singleCard',name='vista_single_card'),
我的models.py:
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
我所有卡片的通用模板:
{% extends 'base.html' %}
{% block title %} Tarjeta {{card.nombre}} {% endblock %}
{% block content %}
<h1>{{ card.nombre }}</h1><br>
<p> {{ card.descripcion }}</p>
{% endblock %}
我不知道是否找到了我在 views.py 中构建的 slug,我确信 urls.py 不好但我不知道如何构建它?
如果我编辑自己的问题以延长它,请原谅,最近我正在尝试在我身边学习 django,但我的学习中有很多差距
如果我忽略了一些问题,请提前向我道歉。
谢谢!!
【问题讨论】:
-
1) 您的卡片类别中似乎没有名为“slug”的字段。 2)您收到错误消息吗?如果某些东西不起作用,您应该更好地描述它是如何失败的:)
-
除了描述错误之外,我想知道我的配置的哪些部分有故障,或者另一方面我忽略了哪些内容。我知道我的配置中有很多错误,我在这里尝试遵循两个答案,但这是我的结果:(
-
只是一个建议:尝试以特定的错误消息开始此类问题,并将您的代码作为额外信息包含在内。在您的情况下,您似乎忘记在模型定义中包含 slug field 。 (您试图通过 slug 获取卡片,但您的卡片模型没有定义 slug 字段。)
-
否则您要求进行代码审核,这可能更适合codereview.stackexchange.com 而不是 StackOverflow。
标签: python django django-views url-routing slug