Внешние ключи с собственной ссылкой перечисляют все, если значение равно нулю на Django -admin Page - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть модель django, как показано ниже:

class Words(models.Model):
    bare = models.CharField(max_length=100)
    accented = models.CharField(max_length=100)
    derived_from_word = models.ForeignKey('self', models.DO_NOTHING, blank=True, null=True, related_name='derived_words',
    related_query_name='derived_word')

Есть поле output_from_word, которое показывает, что некоторые слова получены из другого слова. Если оно не является производным от какого-либо слова, поэтому значение поля равно NULL .

. Какие проблемы возникают у меня при регистрации этой модели в django -админе и при открытии любого слова для редактирования, поле output_from_word перечисляет все слова, и я не могу найти способ перечислить только производное слово или значение NULL. Из-за высокой загрузки слов выпадающий список делает страницу не отвечающей.

Ответы [ 2 ]

1 голос
/ 04 апреля 2020

Начиная с Django 2.0, вы можете использовать autocomplete_fields, чтобы изменить поле выбора для автоматического поиска, которое будет загружать опции асинхронно

class WordsAdmin(admin.ModelAdmin):
    search_fields = ['bare', 'accented']
    autocomplete_fields = ['derived_from_word']
0 голосов
/ 04 апреля 2020

Вы можете использовать это для фильтрации набора запросов: фильтровать поле посторонних ключей в django admin

Или использовать переменную raw_id_fields для вашего ModelAdmin, чтобы иметь возможность просто ввести ID вашего экземпляра.

...