代码之家  ›  专栏  ›  技术社区  ›  Some programmer dude

如何在Django获得当前的应用

  •  8
  • Some programmer dude  · 技术社区  · 14 年前

    我正在使用Django 1.3alpha创建一个包含两个应用程序的项目。我使用1.3是因为基于类的视图。对于这两个应用程序,我有一组公共的基本视图类,它们由应用程序中的实际视图继承。在基类中,是否有方法找出视图是从哪个应用程序“调用”的?例如,我可以用这个URL来获取“当前”应用程序吗?

    1 回复  |  直到 14 年前
        1
  •  7
  •   Davor Lucic    14 年前

    如果从django提供的泛型列表和详细视图继承,则可以访问 self.model 若要访问视图显示有关信息的模型,则可能需要使用 django's resolve() : resolve(self.request.path) .

    你也可以自己做 View 使用所选关键字调用的子类:

    # views.py
    from django.views.generic.base import View
    class MyView(View):
         app_name = None
    
    # urls.py
    from django.conf.urls.defaults import *
    from some_app.views import MyView
    
    urlpatterns = patterns('',
        (r'^myview/', MyView.as_view(app_name='app_name')),
    )
    

    那么你应该可以通过 self.app_name .