Упорядочивание столбцов в админке Django не работает на удаленном сервере, но локально все в порядке

В админке Django я могу упорядочить каждую таблицу в соответствии с любым столбцом, который я хочу, без необходимости указывать что-либо в модели:

enter image description here

После нажатия на заголовок столбца обычно появляется маленькая стрелка, описывающая порядок следования.

admin.py:

from django.contrib import admin
from .models import User
from .resources import UserAdminResource
from import_export.admin import ExportActionModelAdmin

class UserAdmin(ExportActionModelAdmin, admin.ModelAdmin):
    resource_class = UserAdminResource
    list_display = [f.name for f in User._meta.fields]
    list_display.remove("id")

admin.site.register(User, UserAdmin)

resources.py:

from import_export import resources
from .models import User

class UserAdminResource(resources.ModelResource):
    class Meta:
        model = User

models.py:

from django.db import models
from django.conf import settings

class User(models.Model):
    name = models.CharField(
        max_length=256, verbose_name=_("Name"), null=False
    )
    address = models.CharField(
        max_length=256, verbose_name=_("Address"), null=True, blank=True
    )
    city = models.CharField(
        max_length=256, verbose_name=_("City"), null=True, blank=True
    )

    class Meta:
        verbose_name = _("User")
        verbose_name_plural = _("Users")

    def __str__(self):
        return self.name

Но при развертывании на удаленном сервере щелчок на заголовке столбца заставляет его быстро мигать, но это не работает (т.е. не упорядочивает строки), даже при этом URL меняется на: server.org/admin/lorem/user/?o=2 например.

Есть ли что-то особенное, что нужно сделать, когда нужно сортировать колонки в админке Django на удаленном сервере по сравнению с локальной машиной?

И локальное, и удаленное развертывание находятся в одной ветке с одинаковым окружением (docker).

Единственное отличие, которое я заметил, это дополнительная первая строка в сетевом менеджере моего браузера, когда я нажимаю на заголовок столбца:

enter image description here

Django version 4.1.2 / Python 3.9.14

Поскольку недавно я заметил, проделав неправильную манипуляцию, что заказ на самом деле работает на удаленном сервере, попадая на URL, когда указан исходный порт, например server.org:80/admin/lorem/user/?o=2, и что это не так, когда порт не указан, я заподозрил плохо написанное правило в моей конфигурации Nginx.

И это действительно было так.

Согласно: https://stackoverflow.com/a/8130872/6630397 необходимо вручную построить полный URL.

Так что я обновил это:

    location ~ ^/(.*)$ {
        include proxy_params;
        proxy_pass http://127.0.0.1:81/$1;
    }

на это:

    location ~ ^/(.*)$ {
        include proxy_params;
        proxy_pass http://127.0.0.1:81/$1$is_args$args;
    }

И вдруг это работает.

Я думал, что $1 на самом деле перехватывает все до конца URL, независимо от того, присутствуют ли параметры запроса или нет. Но, похоже, так не работает

Больше: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

Вернуться на верх