Этот вопрос беспокоил меня в течение нескольких дней, и я пробовал много раз советоваться, но кажется, что никто не может ответить на него четко или даже дать ссылку на ответ.
Я также пробовал поиск учебников, но я просто не могу найти какой-либо учебник, в котором объясняется, как использовать многоразовое стороннее приложение django (большинство учебных пособий объясняют, как их писать, ни один не объясняет, как их использовать).
Кроме того, я посмотрел здесь:
Как повторно использовать приложение многократного использования в Django - он не объясняет, как на самом деле использовать его в самом проекте
и здесь:
Как связать несколько многоразовых приложений Django вместе? - ответ на вопрос aquaplanet имеет смысл, но я думал, что задаю этот вопрос, чтобы решить ментальный блок я сталкиваемся, пытаясь понять это.
Чтобы лучше объяснить это, позвольте мне сделать это на примере (обратите внимание, что это не то, что я на самом деле создаю).
Я создаю проект, который действует как Reddit. У меня будут пользователи, ссылки и голосования/баллы. Исходя из этого грубого примера, я захочу повторно использовать 3 (произвольные) сторонние приложения: пользователь, голосование/точки и ссылки.
Я решил использовать каждый из них как любой другой пакет python (что означает, что они будут рассматриваться как пакет, и ни один из их кодов не должен быть затронут) [будет ли этот метод действительно работать? Или вы должны иметь возможность редактировать сторонние приложения для создания проекта?)
С помощью этих приложений в рамках моего проекта я буду использовать основное приложение для обработки всего материала шаблона (что означает, что все, что я вижу на интерфейсе, будет в одном приложении).
Затем я либо использую то же самое основное приложение для пользовательской логики (в views.py), либо я разберу эту логику между различными приложениями (но все равно буду использовать одно приложение только для интерфейса).
Из 3 пунктов выше, применима ли эта структура (или она может работать)?
Теперь скажем, что эта структура применима, и я использую одно основное приложение для интерфейса и пользовательской логики.
Что бы я написал в models.py? Как я могу интегрировать вещи из трех многоразовых приложений в основной файл models.py?
Как я могу ссылаться на многоразовые приложения в views.py? Давайте возьмем пример contrib.auth
В этом встроенном приложении для выхода из системы я бы написал:
from django.contrib.auth import authenticate, login, logout
@login_required
def user_logout(request):
logout(request)
return HttpResponseRedirect('/home/')
Несмотря на то, что приведенный выше код прост, в основном, как это сделать с любым многоразовым приложением?
Мой вопрос очень длинный, но я думаю, что эта проблема с многоразовым приложением - это то, что многие разработчики не совсем поняли о себе, и, возможно, этот ответ поможет многим другим, кто слышал о promises повторно используемых приложений, но не понимают, как их использовать.