将用户名传递给通用 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 并更新它们