Как получить актуальное приложение в Джанго - PullRequest
8 голосов
/ 23 ноября 2010

Я использую альфа-версию Django 1.3 для создания проекта с двумя приложениями. Я использую 1.3 из-за представлений на основе классов. Для этих двух приложений у меня есть набор общих базовых классов представления, которые наследуются фактическими представлениями в приложениях. В базовом классе есть способ узнать, из какого приложения «вызывается» представление? Например. я могу использовать URL, чтобы получить «текущее» приложение?

1 Ответ

7 голосов
/ 23 ноября 2010

Если вы наследуете от общего списка и подробных представлений, которые предоставляет django, вы можете получить доступ к self.model, чтобы получить доступ к модели, о которой представление отображает информацию, в противном случае вам, вероятно, придется использовать django resol () : 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...