Поля формы не отображаются на страницах добавления страницы администратора django - PullRequest
0 голосов
/ 21 октября 2019

в моем admin.py я регистрирую несколько моделей, и в этих зарегистрированных моделях я определяю несколько полей, например поле поиска. Поля отображаются в разделе «изменить» модели, но не отображаются в разделе «Добавить» на странице администратора модели. В целом, я пытаюсь выполнить фильтр на странице добавления моей модели AuthGroupFilePermissions, чтобы при добавлении пользователем разрешения для файла группы аутентификации им не приходилось просматривать длинный список шаблонов файлов (более 1000так что это крайне недружелюбно). Ключ на самом деле Filepattern_id, и он является внешним ключом для другой модели.

Я попытался переопределить метод formfield_for_foreingkey, а также использовать filter_vertical и filter_hor horizontal

@admin.register(models.AuthGroupFilePermissions)
class AuthGroupFilePermissions(admin.ModelAdmin):
    list_filter = ('group', )
    search_fields = ['file_pattern__filename_pattern']
    filter_vertical = ('file_pattern',)
    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        print2(kwargs)
        if db_field.name == 'file_pattern':
            kwargs['queryset'] = models.CentralFeedInfo.objects.filter(filename_pattern__icontains='')
        return super().formfield_for_foreignkey(db_field, request=request, **kwargs)

    class Media:
        js = ('/static/admin/js/filepattern_search.js',)

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

...