Промежуточное ПО для проверки существования домена в Django - PullRequest
0 голосов
/ 23 июля 2010

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

http://myapplication.com/site_1/ или же http://myapplication.com/site_2/

Каждый сайт, очевидно, имеет свои собственные страницы, поэтому может иметь такой URL:

http://myapplication.com/site_1/contact_us/

Что я хотел бы сделать, это создать какое-то промежуточное программное обеспечение, которое, когда URL-адрес, такой как два выше (http://myapplication.com/somedomainhere)), будет проверять существование этого конкретного домена в базе данных (которую я уже создал) и, если он существует, перейдите к представлению индекса. Если домен не существует, я хочу перейти на страницу 404.

Является ли это чем-то относительно простым для промежуточного программного обеспечения, и если да, есть ли у кого-нибудь примеры того, как я могу это сделать?

Мне известна структура Sites, которая поставляется с Django, но я буду использовать вышеописанное для создания чего-то немного другого.

1 Ответ

1 голос
/ 23 июля 2010
    class MyMiddleware():
    def process_request(self, request):
        app_name = request.path.split('/')[0]

        try:
            app = Apps.objects.get(name=app_name)
        except DoesNotExist:
            return

        request.urlconf = app.urlconf
        return

Включите ваше промежуточное ПО в settings.py со всеми остальными.

Предполагается, что модель вашего приложения содержит свойство, которое знает о urlconf для этого приложения. Просто направьте запрос на этот urlconf, а Джанго позаботится обо всем остальном.

Для справки см. Документацию по middleware , обработке запросов и настройке urlconfs .

Надеюсь, это поможет!

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