Описание тега django-views

Представления Django - это представления MVC; они контролируют рендеринг (обычно через шаблоны) и отображаемые данные.

Представления Django - это представления MVC; они контролируют рендеринг (обычно через шаблоны) и отображаемые данные.

В случае Django можно создавать общие представления, которые специализируются на различных параметрах (часто классах моделей), которые просто соединяются с соответствующим шаблоном для создания полной страницы.

Отделение от системы шаблонов также позволяет очень легко создавать выходные данные в разных форматах или использовать одно представление для нескольких, совершенно разных по виду страниц (обычно с похожими данными).

В Django есть два типа представлений.

Представления на основе классов (сокращенно CBV) и представления на основе функций (FBV). Сценарии использования различаются для каждого из них, и хотя в более поздних версиях Django рекомендуется использовать представления на основе классов, представления на основе функций не полностью устарели.

CBV обеспечивает лучшее повторное использование кода, наследование и миксины. Дополнительную информацию можно найти здесь

Пример представления на основе класса:

from django.views.generic.edit import UpdateView
from myapp.models import Author

class AuthorUpdate(UpdateView):
    model = Author
    fields = ['name']
    template_name_suffix = '_update_form'

Пример представления на основе функций:

def update_account_view(request, account_id):
    # do some account stuff
    context = {'account': some_object, 'another_key': 'value'}
    return render_to_response('templates/account_update.html', 
                              context, 
                              context_instance=RequestContext(request))