Передача данных для Jinja2 от Updateviev

У меня есть такой шаблон на каждой html странице, в которую я хочу передать данные из моих url процессоров:

{% block title %} {{ title }} {% endblock %}
{% block username %} <b>{{username}}</b> {% endblock %}

При использовании обычных функций def, я передаю их следующим образом:

data_ = {
    'form': form,
    'data': data,
    'username': user_name,
    'title': 'Add campaign page'
}
return render(request, 'dashboard/add_campaign.html', data_)

Но когда я использую класс, основанный на UpdateView:

class CampaignEditor(UpdateView):
    model = Campaigns
    template_name = 'dashboard/add_campaign.html'
    form_class = CampaignsForm

Есть немного другая структура данных, подскажите, как передать нужную дату через класс?

Вы отменяете get_context_data:

class CampaignEditor(UpdateView):
    model = Campaigns
    template_name = 'dashboard/add_campaign.html'
    form_class = CampaignsForm

    def get_context_data(self, *args, **kwargs):
        return super().get_context_data(
            *args,
            **kwargs,
            data='some_data',
            title='Add campagin page',
            username=self.request.user
        )

Здесь создается словарь, который передается в шаблон. В UpdateView он уже будет заполнен, например, form.

Вернуться на верх