Связанное поле получило недопустимый поиск: icontains - Django 2.1 - PullRequest
3 голосов
/ 09 марта 2019

Я пытаюсь сделать поле "vanKit" доступным для поиска на моей странице администратора."vanKit" - это ForeignKey, и всякий раз, когда я добавляю его в свой список search_fields, он выдает мне эту ошибку "Связанное поле получило недопустимый поиск: icontains".Вот мой код:

Models.py

class KitSupplies(models.Model):
    supplyName = models.ForeignKey(supplies, on_delete=models.CASCADE)
    vanKit = models.ForeignKey(van_kit, on_delete=models.CASCADE)
    quantity = models.PositiveSmallIntegerField(blank=False)
    def __str__(self):
        return str(self.supplyName)
    class Meta:
        verbose_name_plural = 'Kit Supplies'

admin.py

class KitSuppliesAdmin(admin.ModelAdmin):
    list_display = ('supplyName', 'vanKit', 'quantity')
    search_fields = ['vanKit']

admin.site.register(KitSupplies, KitSuppliesAdmin)

Я пытался использовать search_fields = ['vanKit__name'], как и другие предложенные ответы о переполнении стека, но этоне работал для меня.Может кто-нибудь объяснить, почему я получаю эту ошибку и как ее обойти?Я использую Django 2.1 и python 3.7.Заранее спасибо!

1 Ответ

3 голосов
/ 09 марта 2019

Итак, я понял, что мне пришлось использовать "search_fields = ['vanKit__van_kit_name']" van_kit_name - это поле, которое содержит имя наборов фургонов в модели van_kit, к которой "vanKit" относится через внешний ключ. Мне нужно было получить доступ к Полю Обугленных, в котором содержалось имя комплекта фургона в фактической модели van_kit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...