Python 使用slug生成专用URL
我在过去的时间里问过如何生成一个url,该url具有类似的特征,从您告诉我的ID开始,最好使用slug来实现。这一次我想用slug生成dinamics URL。我的目标是获得以下结果: 我有五种产品在models.py中命名为cards(伊塞拉、内萨里奥、诺兹多尔姆、阿列克斯特拉萨、马利戈斯)。我需要每个产品的相应url: 本地主机:8000/卡/ysera 本地主机:8000/卡/neltharion 本地主机:8000/卡/诺兹多姆。。。等等 我尝试生成这些URL,但我不知道我是否很好地应用了命令,或者我不知道如何将id卡指定为卡的主名称(伊塞拉,内塔里昂…)。我试图在这个社区中找到一个有点盲目的答案,这是我的“重新配置”: 这里是my views.py:Python 使用slug生成专用URL,python,django,django-views,url-routing,slug,Python,Django,Django Views,Url Routing,Slug,我在过去的时间里问过如何生成一个url,该url具有类似的特征,从您告诉我的ID开始,最好使用slug来实现。这一次我想用slug生成dinamics URL。我的目标是获得以下结果: 我有五种产品在models.py中命名为cards(伊塞拉、内萨里奥、诺兹多尔姆、阿列克斯特拉萨、马利戈斯)。我需要每个产品的相应url: 本地主机:8000/卡/ysera 本地主机:8000/卡/neltharion 本地主机:8000/卡/诺兹多姆。。。等等 我尝试生成这些URL,但我不知道我是否很好地应用
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))
My urls.py(我有一个应用程序URL.py和主URL.py):
我所有卡的通用模板:
{% extends 'base.html' %}
{% block title %} Tarjeta {{card.nombre}} {% endblock %}
{% block content %}
<h1>{{ card.nombre }}</h1><br>
<p> {{ card.descripcion }}</p>
{% endblock %}
{%extends'base.html%}
{%block title%}Tarjeta{{card.nombre}}{%endblock%}
{%block content%}
{{card.nombre}}
{{card.descripion}}
{%endblock%}
我不知道我在views.py中的slug构建是否找到了,我确信url.py不好,但我不知道如何构建它
请原谅,如果我编辑我自己的问题来延长它,最近我试图在我身边学习django,我在学习上有很多差距
如果我忽略了什么,请提前向我道歉
谢谢 这一行:
tarj=card.objects.get(slug=slug,id=id\u tarj)
尝试加载卡对象,其中id
字段设置为isid\u tarj
,而slug
字段设置为slug
。您的模型没有名为slug
的字段。您需要添加一个
一个很好的候选者应该是SlugField
-
在每种情况下,您都需要确保slug字段包含正确的值 1)您的卡类中似乎没有名为“slug”的字段。2) 你收到错误信息了吗?如果有些东西不起作用,你应该更好地描述它是如何失败的:)除了描述一个错误,我想知道我的配置的哪些部分出现了故障,或者另一方面我忽略了什么。我知道在我的配置中有很多错误,我试着在这里遵循两个答案,但这是我的结果:(只是一个建议:尝试用一个特定的错误消息开始这样的问题,并将代码作为额外的信息包含在内。在您的情况下,您似乎忘记了在模型定义中包含。(您试图通过slug获取一张卡,但是您的卡模型没有定义slug字段。)否则,您要求执行代码审核,这可能更适合于而不是StackOverflow。
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 %}