将用户名传递给通用 DetailView 时出错 - django 1.4.3

Posted

技术标签:

【中文标题】将用户名传递给通用 DetailView 时出错 - django 1.4.3【英文标题】:Error passing the username to a Generic DetailView - django 1.4.3 【发布时间】:2013-01-29 11:36:09 【问题描述】:

首先,我读过这个django username in url, instead of id 它有帮助,但没有解决我的问题。如果可以的话,我不想在views.py 中写任何代码。

我在urls.py 下尝试过的东西。注意:在这两种情况下,我都会得到name 'username' is not defined

1

urlpatterns = patterns('',
    url(r'^(?P<username>[\w.@+-]+)/$',
        login_required(
            DetailView.as_view(
                model=User,
                username=username,
                template_name='account/user_detail.html'),
            login_url='/accounts/login/'
        )
    ),
)

2

urlpatterns = patterns('',
    url(r'^(?P<username>[\w.@+-]+)/$',
        login_required(
            DetailView.as_view(
                model=User,
                queryset=User.objects.get(username=username),
                template_name='account/user_detail.html'),
            login_url='/accounts/login/'
        )
    ),
) 

【问题讨论】:

【参考方案1】:

您不能在 urlconf 中进行那种动态过滤。子类 DetailView 并覆盖 get_queryset 以过滤 self.kwargs['username']

【讨论】:

以上是关于将用户名传递给通用 DetailView 时出错 - django 1.4.3的主要内容,如果未能解决你的问题,请参考以下文章

如何将 DetailView 传递给 url 中的“slug”?

将属性从包含的布局传递给布局时出错

SwiftUI 和 CoreData:将 FetchResults 传递给 DetailView 并更新它们

将 UnsafeMutablePointer 传递给函数时出错

将数据从 plist 传递到 DetailView

使用引用将结构传递给函数时出错[重复]