【发布时间】:2019-07-31 01:30:06
【问题描述】:
我正在尝试在我的管理页面中使“vanKit”字段可搜索。 “vanKit”是一个 ForeignKey,每当我将它添加到我的 search_fields 列表时,它都会给我这个错误“相关字段的查找无效:icontains”。这是我的代码:
模型.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。提前致谢!
【问题讨论】:
-
vanKit 模型是什么样的?你确定
VanKit.name是一个字符串字段吗? -
van_kit和supplies是你的班级名称吗?为什么不是VanKit和Supply?见:docs.python-guide.org/writing/style -
vanKit 是 van_kit 的外键。货车套件的名称由 van_kit 类中的“van_kit_name = models.CharField(max_length=100)”指定
-
我也会进行这些更改以更正类名
标签: django python-3.x django-models