Как правильно расширить / изменить вид внешнего приложения в Django? - PullRequest
1 голос
/ 09 февраля 2012

Я работаю над проектом Django, и у меня есть несколько внешних приложений, которые установлены в моей виртуальной среде.

В одном из приложений есть функция загрузки файла, определив def upload и направив к нему /upload в urls.py

Теперь я хочу добавить в метод некоторые функции, такие как @login_required или отправить request.user вместе с параметрами.

Я могу сделать это, перейдя непосредственно к внешнему коду приложения, однако, если приложение будет обновлено, оно сломается.

Я пытаюсь скопировать views.py приложения в мою локальную папку app с тем же именем и написать там свой код, но, похоже, он не работает (как модификация шаблона)

Есть ли другие варианты для меня? Спасибо!

1 Ответ

2 голосов
/ 09 февраля 2012

Вы можете обернуть внешний вид приложения в свой собственный вид. По вашему views.py:

from external_app.views import upload_view

@login_required
def custom_upload_view(self, request, *args, **kwargs):
     # Do something before
     ...
     return upload_view(request, *args, **kwargs)

Вам нужно просто убедиться, что у вас есть собственный шаблон URL, указывающий на ваш пользовательский вид в конфигурации URL, прежде чем внешние приложения будут URL

...