всем! На странице сведений о пользователе у меня есть сообщения пользователя, которые я хочу разбить на страницы (планируя сделать бесконечную разбивку на страницы позже). Пытаясь это сделать, я получаю ошибку «UserDetailView», объект не имеет атрибута «object_list». Я много искал решение, но не нашел четкого примера, как разбивать связанные объекты на страницы в подробном представлении. Любая помощь по этому поводу очень ценится.
Это мой DetailView для пользователя:
class UserDetailView(DetailView,MultipleObjectMixin):
model = CustomUser
template_name = 'users/user_detail.html'
context_object_name = "user"
paginate_by = 5
def get_object(self):
id_ = self.kwargs.get('id')
return get_object_or_404(CustomUser, id=id_)
def get_context_data(self, **kwargs):
posts = self.object.posts_set.all().order_by('-created_at')
#context['posts'] = self.object.posts_set.all().order_by('-created_at')
context = super(UserDetailView, self).get_context_data(posts=posts, **kwargs)
context['main'] = Main.objects.get(pk=1)
context['supporters'] = CustomUser.objects.filter(team = self.object.team)
return context
И я получаю ошибку: объект 'UserDetailView' не имеет атрибута 'object_list'
Отслеживание
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/user/1/
Django Version: 3.0.7
Python Version: 3.8.3
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'users.apps.UsersConfig',
'team.apps.TeamConfig',
'posts.apps.PostsConfig',
'main.apps.MainConfig',
'crispy_forms',
'django.contrib.humanize',
'rest_framework',
'pytils']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\views\generic\base.py", line 71, in view
return self.dispatch(request, *args, **kwargs)
File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\views\generic\base.py", line 97, in dispatch
return handler(request, *args, **kwargs)
File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\views\generic\detail.py", line 107, in get
context = self.get_context_data(object=self.object)
File "C:\Users\User\Desktop\fansite\fantribune\users\views.py", line 66, in get_context_data
context = super(UserDetailView, self).get_context_data(posts=posts, **kwargs)
File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\views\generic\detail.py", line 100, in get_context_data
return super().get_context_data(**context)
File "C:\Users\User\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\views\generic\list.py", line 115, in get_context_data
queryset = object_list if object_list is not None else self.object_list
Exception Type: AttributeError at /user/1/
Exception Value: 'UserDetailView' object has no attribute 'object_list'