【问题标题】:How do I create a url pattern like controller/action/id in django?如何在 django 中创建像控制器/动作/id 这样的 url 模式?
【发布时间】:2010-09-16 21:55:12
【问题描述】:

我正在尝试创建一个 url 模式,其行为类似于 rails 中的控制器/动作/id 路由。到目前为止,这是我所拥有的:

from django.conf.urls.defaults import *
import views

urlpatterns = ('',
              (r'^(?P<app>\w+)/(?P<view>\w+)/$', views.select_view),
              )

这是我的“views.py”:

def select_view(request, app, view):
    return globals()['%s.%s', % (app, view,)]()

到目前为止,这还没有奏效。我在“全局”函数中得到一个关键错误异常。我的方向正确吗?

【问题讨论】:

    标签: python django django-urls


    【解决方案1】:

    试试这样的:

    from django.utils.importlib import import_module
    
    def select_view(request, app, view):
        mod = import_module('%s.views' % app)
        return getattr(mod, view)(request)
    

    这显然是一个过于简单的例子,你要做的是从你的应用程序中导入views.py,看看它是否有view函数,如果它确实执行了那个函数,将请求作为第一个参数。

    查看 Django 如何使用 get_callableautodiscover 方法的一些示例。

    【讨论】:

      猜你喜欢
      • 2013-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-07
      • 1970-01-01
      • 2011-06-23
      • 2014-08-31
      • 1970-01-01
      相关资源
      最近更新 更多