Как исправить много дубликатов SQL запросов в админке Django? - PullRequest
0 голосов
/ 31 октября 2019

У меня есть пользовательский пользователь, к которому добавлено только одно поле. Я установил отладчик django и увидел, что при создании пользователя создается много одинаковых запросов.

Как это исправить?

enter image description here

models.py

class CustomUserManager(UserManager):
     pass


class TestUser(AbstractUser):
    phone = PhoneNumberField(null=False, blank=False, unique=True)
    email = CharField(unique=True, max_length=35, null=False, blank=False)

    class Meta:
        db_table = '"fyzzys"."users"'
        permissions = [
            ("can_see_payments", "payments"),
            ("can_see_analytics", "analytics"),
            ("can_see_documents", "documents"),
            ("can_see_sverka", "sverka"),
            ("can_see_ways", "ways")
        ]

    objects = CustomUserManager()

    def __str__(self):
        return self.username

admin.py

admin.site.register(Permission)


class MyUserAdmin(UserAdmin):
    model = TestUser
    form = CustomUserChangeForm
    add_form = CustomUserCreationForm
    list_display = ('username', 'first_name', 'email', 'phone', 'is_active',)
    list_filter = (['is_active'])
    search_fields = ()
    filter_horizontal = (['groups', 'user_permissions'])
    fieldsets = (
        ('Personal info', {'fields': ('first_name', 'email', 'phone', 'password')}),
        ('permissions', {'fields': ('is_active', 'is_staff', 'user_permissions')})
    )
    add_fieldsets = UserAdmin.add_fieldsets + (
        ('Personal info', {'fields': ('first_name', 'email', 'phone')}),
        ('permissions', {'fields': ('is_active', 'is_staff', 'user_permissions')}),
    )


admin.site.register(TestUser, MyUserAdmin)

UPD: по какой-то причине каждое разрешение, указанное в таблице permission, вызывает небольшой запрос. Как его оптимизировать?

UPD2: обновление пользователя не создает дубликатов.

...