Используйте другое представление в зависимости от значения базы данных объектной модели в Django - PullRequest
1 голос
/ 05 декабря 2011

Я запускаю вторую версию проекта и хочу, чтобы пользователи могли обновиться до нового формата. Это не будет принудительное обновление, поэтому пользователи скажут: «Сделайте мою страницу страницей V2». URL-адреса их страниц останутся прежними.

Я бы хотел, чтобы в представлении можно было сказать:

def v1_page(request, page_id):
    page = get_object_or_404(Page, id=page_id)
    if page.upgraded:
        # use the v2 view instead (which ends with a return render_to_response('v2_base_page.html', variables))
        v2_page(request, page)
    else:
        # load this page 

Или я поступаю неправильно? Я не хочу массивного оператора if / else.

1 Ответ

2 голосов
/ 05 декабря 2011

Функция должна возвращать результат вызова v2_page:

def v1_page(request, page_id):
    page = get_object_or_404(Page, id=page_id)
    if page.upgraded:
        return v2_page(request, page)
    else:
        # load this page 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...