Коды разбиения на страницы не работают с аннотацией

#python #django #django-pagination #django-annotate

Вопрос:

Я хотел отобразить таблицу, отфильтровав записи из базы данных. Поэтому я отфильтровал записи и присвоил им «qc3_table_data«. Кроме того, мне нужно было «имя пользователя» из таблицы ПОЛЬЗОВАТЕЛЕЙ. Я использовал АННОТАЦИЮ и добавил «qc2_engineer_query» в «qc3_table_data«. До сих пор все работало хорошо.

Но когда я использую код разбиения на страницы, он выдает ошибку. Кто-нибудь может помочь мне решить эту проблему?

views.py

 def designer_home_view(request):
   qc3_table_data = cn_data_tables.objects.filter( engineer=request.user).filter(qc3_submit_status=True )

   qc3_table_data = qc3_table_data.annotate(qc2_engineer_query=Subquery(User.objects.filter( id=OuterRef( 'qc_engineer_2' ) )[:1].values( 'first_name' ) ))
 

Коды для разбиения на страницы

    page = request.GET.get( 'page', 1 )
   paginator = Paginator( qc3_table_data, 2 )

   try:
     qc3_table_data = paginator.page( page )
   except PageNotAnInteger:
     qc3_table_data = paginator.page( 1 )

   except EmptyPage:
     qc3_table_data = paginator.page( paginator.num_pages )

   get_dict_copy = request.GET.copy()
   params = get_dict_copy.pop( 'page', True ) and get_dict_copy.urlencode()

   return render( request, 'Home_page_designer.html',
               {'cn_table_data':qc3_table_data,
                'qc2_table_data':qc2_table_data,
                'my_task':my_task,
                'filter':filter1,
                'params':params,
                }
               )
 

Я получаю следующую ошибку

 System check identified no issues (0 silenced).
November 07, 2021 - 22:02:29
Django version 2.2.7, using settings 'QC_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
C:UsersipcramkDesktopDesktop filespYTHON TRAININGDjangoQuality_Check_UIQC_projectapp1views.py:242: UnorderedObjectListWarning: Pagination may yield inconsistent results with an
unordered object_list: <class 'app1.models.cn_data_tables'> QuerySet.
  paginator = Paginator( qc3_table_data, 2 )
Internal Server Error: /cn_entry/designer_home
Traceback (most recent call last):
  File "C:UsersipcramkPycharmProjectsQuality_Check_UIlibsite-packagesdjangodbbackendsutils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "C:UsersipcramkPycharmProjectsQuality_Check_UIlibsite-packagesmssqlbase.py", line 561, in execute
    return self.cursor.execute(sql, params)
pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Column 'app1_cn_data_tables.qc_engineer_2' is invalid in the select list because it is no
t contained in either an aggregate function or the GROUP BY clause. (8120) (SQLExecDirectW); [42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Statement(s) could not be prepar
ed. (8180)")