Ошибка Python: у объекта нет атрибута 'META' - PullRequest
0 голосов
/ 15 марта 2019

У меня есть небольшая проблема с моим представлением здесь, поскольку оно возвращает ошибку на django, но я не знаю, что я сделал неправильно. Мой код выглядит следующим образом:

    from django.views.generic import TemplateView
    from django.shortcuts import render

    from community.models import Community


    class CommunityLanding(TemplateView):

        def get_context_data(request):

            template_name = 'community/landing.html'

            objects = Community.objects.all()

            context = {
                'object': objects
            }

            return render(request, template_name, context)

Кто-нибудь может указать мне правильное направление?

1 Ответ

1 голос
/ 15 марта 2019

Почти все в вашем коде неверно. Атрибут template_name определен внутри класса, а не внутри метода get_context_data. Метод get_context_data принимает только один параметр и является переменной 'self' и должен возвращать только контекст. Вам не нужно визуализировать ваш шаблон вручную, другие методы позаботятся об этом, пока у вас определено имя шаблона.

from django.views.generic import TemplateView
from community.models import Community

class CommunityLanding(TemplateView):
    template_name = 'community/landing.html'

    def get_context_data(self):
        context = super().get_context_data()
        objects = Community.objects.all()
        context['object'] = objects
        return context

Вы должны прочитать больше о создании подклассов общих видов

...