相关疑难解决方法(0)

确定完整的Django url配置

有没有办法获得完整的 django url配置?

例如,Django的调试404页面没有显示包含的url配置,因此这不是完整的配置.


:感谢Alasdair,这是一个示例脚本:

import urls

def show_urls(urllist, depth=0):
    for entry in urllist:
        print "  " * depth, entry.regex.pattern
        if hasattr(entry, 'url_patterns'):
            show_urls(entry.url_patterns, depth + 1)

show_urls(urls.urlpatterns)
Run Code Online (Sandbox Code Playgroud)

python django url

80
推荐指数
4
解决办法
2万
查看次数

Django - 获取反转url所需的参数名称

背景

假设我有一个带有参数的url模式,它会将我链接到django中的视图:

url(
    r'^things/(?P<thing_name>\w+)/features/(?P<feature_name>\w+)$',
    views.thingFeature,
    name='thing_feature'
),
Run Code Online (Sandbox Code Playgroud)

让我们说我有一个thing和一个feature:

thing = Thing.objects.get(.....)
feature = thing.feature_set.first()

t_name = thing.name
f_name = feature.name
Run Code Online (Sandbox Code Playgroud)

现在Django给了我很棒的能力来获取一个网址,它将我带到一个专门针对特定事物的特定功能的页面.我可以这样做:

from django.core.urlresolvers import reverse
url = reverse('thing_feature', thing_name=t_name, feature_name=f_name)
# url == '/things/thing2/features/left-arm'
Run Code Online (Sandbox Code Playgroud)

现在我偶然发现了一个我需要专门解决的问题.我不是在寻找解决方法 - 我正在寻找解决以下问题:

给定一个url name,如何获取kwarg反转该url所需的参数名称列表?

我正在寻找这个功能get_kwarg_names_for_url.它的行为如下:

url_kwarg_names = get_kwarg_names_for_url('thing_feature')
# url_kwarg_names == ['thing_name', 'feature_name']
Run Code Online (Sandbox Code Playgroud)

url_kwarg_names现在是我需要提供给Django reverse函数的每个关键字的列表,以便反转命名的url "thing_feature".

任何帮助表示赞赏!

根据knbk的回答,我能够提出以下解决方案:

def get_kwarg_names_for_url(url_name):
    resolver = get_resolver(get_urlconf())
    reverse_data = resolver.reverse_dict[url_name]

    pattern_list = reverse_data[0]

    '''
    Need …
Run Code Online (Sandbox Code Playgroud)

python django django-urls

8
推荐指数
1
解决办法
1011
查看次数

djangorestframework 可浏览的 api:如何显示所有可用的端点 url?

在 djangorestframework 中,有一个可浏览的 api。但是我如何向用户展示他/她可以进行的所有可能的 API 调用的完整鸟瞰图?我现在一次只能看到一个,用户必须事先知道正确的 URL

IE,

http://localhost:8000/users
http://localhost:8000/books
http://localhost:8000/book/1/author
Run Code Online (Sandbox Code Playgroud)

谢谢!

django django-rest-framework

8
推荐指数
1
解决办法
3210
查看次数

如何获取django应用程序中所有视图的列表?

有没有办法在django应用程序中获取所有视图的列表?我用Google搜索了答案.所有答案都显示了获取网址列表的方法.

django django-views

7
推荐指数
2
解决办法
4517
查看次数

Django 2.2.3 如何获取所有 url 模式和所有视图名称

我用 Django == 2.2.3 编写应用程序

现在我想获取我所有项目的所有 urls_patterns 和关联的视图名称。

我怎样才能得到这样的东西:

    urls_patterns_view_names_list = [
        ("view_name", "view_name: url_pattern"),
        ...,
        ...,
        ...,
]
Run Code Online (Sandbox Code Playgroud)

我已经看到了几个关于 url 模式问题的主题,但没有一个对应并做我想做的事情。在大多数情况下,答案对于我的情况来说都是非常古老且令人着迷的。这就是为什么我重新表述我的问题:我想要 url 模式,并且每个 url 都与其视图的名称相关联:如何在 python 3.7 上使用 Django 2.2.3 来做到这一点?

django django-urls django-views python-3.x

5
推荐指数
2
解决办法
4321
查看次数

如何打印Django中使用的所有路由?

我想在使用 Django 构建的应用程序中显示所有路由,就像 Laravel 使用以下命令所做的那样:

php artisan route:list
Run Code Online (Sandbox Code Playgroud)

有没有办法获得所有路线?

python django path laravel

3
推荐指数
1
解决办法
2357
查看次数