首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >slug有问题

slug有问题
EN

Stack Overflow用户
提问于 2016-04-03 16:35:27
回答 1查看 46关注 0票数 0

我正在写一个模型在线商店django应用程序,想在其中包含slug。在打开页面时遇到困难。这是我的模型:

代码语言:javascript
复制
from __future__ import unicode_literals
from django.db import models
from django.db.models.signals import pre_save
from django.utils .text import slugify

class Customer(models.Model):
    customer_name = models.CharField(max_length=200)
    slug = models.SlugField(unique = True)
    def __str__(self):
        return self.customer_name

    def get_absolute_url(self):
        return reverse("OnlineShop:order", kwargs={"slug": self.slug})

def pre_save_customer_receiver(sender, instance, *args, **kwargs):
    slug = slugify(instance.customer_name)
    exists = Customer.objects.filter(slug = slug).exists()
    if exists:
        slug = "%s-%s" % (slug,instance.id)
    instance.slug=slug

pre_save.connect(pre_save_customer_receiver, sender = Customer)

这是我的观点:

代码语言:javascript
复制
def customer(request):
    customer_list = Customer.objects.all()
    template_path = 'OnlineShop/customer.html'
    context={
        'customer_list':customer_list,
    }
    return render(request,template_path,context)

def order(request,slug):
    Customer = Customer.objects.filter(slug=slug)
    ''' some code from here '''

和我的模板customer.html:

代码语言:javascript
复制
<h1>List of Customers:</h1>
<ul>
    {% for customer in customer_list %}
        <li><a href='{% url 'order' customer.slug %}'>{{ customer.customer_name }}<br></li>
    {% endfor %}
</ul>

这是我的urls.py

代码语言:javascript
复制
       from django.conf.urls import url
       from . import views

       urlpatterns=[
       url(r'^$',views.customer, name='customer'),
       url(r'^customer/(?P<slug>[\w-]+)$',views.order, name='order'),
       ]

问题出在模板上吗?怎么啦?

EN

回答 1

Stack Overflow用户

发布于 2016-04-03 17:54:35

我希望你已经像下面这样定义了你的urls.py

代码语言:javascript
复制
from django.conf.urls import url, include

from . import views

onlineshop_patterns = [
    url(r'^$', views.customer, name='customer'),
    url(r'^customer/(?P<slug>[\w-]+)$', views.order, name='order'),
]

urlpatterns = [
    # ...
    url(r'^OnlineShop/', include(onlineshop_patterns)),
    # ...
]

请阅读Reverse resolution of URLsRegex for SlugField

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36383266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档