Метод Get в DetailView изменяет передачу данных в шаблоны - PullRequest
0 голосов
/ 25 мая 2019

Я хочу добавить метод get в мой DetailView, но он не работает. Как только я добавляю метод get, я теряю связь с данными в шаблоне.


    #I tried to change {{ object.field_name }} to
    #{{ post.field_name }}
    #{{ object_list.field_name }}


    # in app views I write :
    class PostDetailView(DetailView):
        model = Post

    # in templates I write:
    <a>{{ object.author }}</a>

    # data is send to templates and it works fine
    # But then I want to add a get/post to the view:

    class PostDetailView(DetailView):
        model = Post
        template_name = 'blog/post_detail.html'

        def get(self, request, *args, **kwargs):
            form = HomeForm()
            return render(request, self.template_name, {'form':form})

    # Once I add the get method , data is not rendering on my template.

Если бы кто-то мог помочь мне выяснить, почему данные не отображаются в шаблонах после добавления метода get в мой DetailView, было бы здорово. Я провел день / ночь в поисках, но теперь мой мозг зажарен ... помогите, пожалуйста. TX TX!

1 Ответ

2 голосов
/ 25 мая 2019

Вы изменяете свои контекстные данные, и в измененных контекстных данных отсутствует объект.Вы можете удалить метод get и добавить get_context_data, чтобы ваш правильный код был таким:

class PostDetailView(DetailView):
    model = Post
    template_name = 'blog/post_detail.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        form = HomeForm()
        context['form'] = form
        return context
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...