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) 时,它无法识别requestbit。我该如何解决这个问题?对不起,我是新手。 您可以从self.request获取。 谢谢!这正是我想要的。

以上是关于Django - 传递 URL“名称”属性以查看的主要内容,如果未能解决你的问题,请参考以下文章

Django:引用模板中的url名称并传递参数

将模型属性传递给 Django 中的 URL

Django URL 变量 - URL 中的企业名称而不是 ID

基于 Django 类的“method_splitter” - 分别传递 2 个 slug 作为模型名称和字段值

反向 Django 管理 URL

尝试传递一个字符串以通过 Django Rest Framework url 进行查询