Django - 传递 URL“名称”属性以查看
Posted
技术标签:
【中文标题】Django - 传递 URL“名称”属性以查看【英文标题】:Django - Pass URL "name" attribute to view 【发布时间】:2014-09-22 12:32:24 【问题描述】:我创建了以下网址:
urls.py
url(r'^authors', GenericView.as_view(model=Author, context_object_name='authors_list',
success_url=reverse_lazy('author_link'),
template_name='app/authors.html'), name='author_url_name'),
我想访问视图上的 URL 名称,传入一个变量。在这种情况下,'author_url_name'。
我需要的视图函数如下:
views.py
def get_context_data(self, **kwargs):
context = super(AuthorClass, self).get_context_data(**kwargs)
context['action'] = reverse_lazy('author_url_name')
return context
这行得通,但我想用某种方法替换“author_url_name”,这正是我所想的。
感谢您的宝贵时间!!
【问题讨论】:
【参考方案1】:https://***.com/a/17614086/183948为你解答。
从 Django 1.5 开始,可以从请求对象中访问它
current_url = request.resolver_match.url_name
https://docs.djangoproject.com/en/1.5/ref/request-response/#django.http.HttpRequest.resolver_matc
【讨论】:
感谢布拉德的回答。但是,我使用函数 get_context_data(self, **kwargs) 的类是一个 CreateView,它没有传递一个“请求”。因此,当我执行context['action'] = reverse_lazy(request.resolver_match.url_name)
时,它无法识别request
bit。我该如何解决这个问题?对不起,我是新手。
您可以从self.request
获取。
谢谢!这正是我想要的。以上是关于Django - 传递 URL“名称”属性以查看的主要内容,如果未能解决你的问题,请参考以下文章
Django URL 变量 - URL 中的企业名称而不是 ID