Контекст переопределяет имя_объекта_контекста

Я новичок в Django и совершенно не знаю, как подойти к решению этой проблемы.

Views.py:

class UserProfileDetailView(DetailView):
model = CustomUser
context_object_name = 'profile_detail'
template_name = 'user_profile_templates/profile_detail.html'

def get(self, request, pk, *args, **kwargs):
    followers_var = request.user.motivators.all()

    if len(followers_var) == 0:
        is_following = False

    for follower in followers_var:
        if follower == request.user:
            is_following = True
            break
        else:
            is_following = False

    number_of_followers = len(followers_var)

    context = {
        'number_of_followers': number_of_followers,
        'is_following': is_following,
    }
    
    return render(request, 'user_profile_templates/profile_detail.html', context,)

Итак, проблема в том, что я не могу использовать context_object_name или 'object.var_name' в моем шаблоне. Я предполагаю, что за это отвечает контекст, который я определил в моем методе get. Я где-то читал, что мы не должны использовать метод get() в классе DetailView, но я не знаю, что делать вместо этого, должен ли я использовать View и идти оттуда? RequestContext? Как бы вы рефакторили весь этот класс?

Когда вы используете DetailView, вы можете поместить код, который работает с контекстом, в get_context_data:

def get_context_data(self, **kwargs):
   context = super().get_context_data(**kwargs)
   ... # your code
   context["number_of_followers"] = number_of_followers,
   context["is_following"] = is_following,
Вернуться на верх