【问题标题】:Is it OK to reuse Django URL patterns. If so, how?是否可以重用 Django URL 模式。如果是这样,怎么做?
【发布时间】:2013-04-02 02:30:46
【问题描述】:

我有一个 URL 和一个基于类的视图层次结构,它们需要做完全相同的事情,但由于各种原因,它们需要在其中一个超类中具有单独的 dispatch() 方法。

即所有视图的公共超类都有一个 dispatch() 方法,如果 URL 是 /a/...,则调用 dispatchA();如果 URL 是 /b/.../,则调用 dispatchB()

在 django urlpatterns() 中使用不同前缀的相同模式(...)两次是否可以。

对于额外的功劳,知道如何将 kwarg(如 b = True)添加到后一种模式,这样我就不必在 dispatch() 中进行 URL 检查

【问题讨论】:

    标签: django django-urls django-class-based-views


    【解决方案1】:

    这样做当然没问题。您可以通过在模式后的字典中指定 extra kwargs 来传递它们:

    (r'^a/foo/$', my_view, {'b': False}),
    (r'^b/foo/$', my_view, {'b': True}),
    

    或者,您可以将前缀本身捕获为一个 kwarg,并在调度方法中检查它。

    【讨论】:

    • 所以(r'^a/', include(foo), dict(a=True)) 也应该可以,对吧?
    • 当然,在上面的同一个链接中进一步解释了将它与包含一起使用。
    猜你喜欢
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 2020-03-25
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    相关资源
    最近更新 更多