首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django在捕捉和转发到视图的urls上遇到了麻烦。(slug字段)

Django在捕捉和转发到视图的urls上遇到了麻烦。(slug字段)
EN

Stack Overflow用户
提问于 2011-08-25 05:53:28
回答 1查看 393关注 0票数 1

我目前正在制作由slugs在django上调用的views,但我似乎在这方面遇到了一些麻烦。

假设我有像de ce ceiling (slug fields)这样的数据库条目。现在,当我调用myapp/cemyapp/de时。它返回我想要的视图。但是当我调用myapp/ceiling时,它返回404

No sculpture found matching the query

不过,它捕获的是url。

当我在name字段中使用大写字母时出现问题。其他字段保存lowercase

我不能理解这种行为。

我的代码如下:

urls.py

代码语言:javascript
复制
urlpatterns = patterns('sculptures.views',
            (r'^$', SculptureListView.as_view()),
            (r'^(?P<slug>[\w-]+)/$', SculptureDetailView.as_view()),
        )

views.py

代码语言:javascript
复制
class SculptureDetailView(DetailView):
    context_object_name = 'sculpture'
    def get_queryset(self):
        sculpture_slug = get_object_or_404(Sculpture, slug__iexact=self.kwargs['slug'])
        return Sculpture.objects.filter(slug=sculpture_slug)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-25 06:07:21

看看你的代码:

代码语言:javascript
复制
def get_queryset(self):
    sculpture_slug = get_object_or_404(Sculpture, slug__iexact=self.kwargs['slug'])

在这里,您将获取与捕获的插件相匹配的Sculpture对象。

代码语言:javascript
复制
    return Sculpture.objects.filter(slug=sculpture_slug)

然后您将获得另一个Sculpture对象为其段塞的Sculpture对象。我想知道这在某些情况下是如何工作的:)

因为您有一个DetailView,所以可以直接使用get_object()

代码语言:javascript
复制
class SculptureDetailView(DetailView):
    def get_object(self):
        return get_object_or_404(Sculpture, slug__iexact=self.kwargs['slug'])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7182782

复制
相关文章

相似问题

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