django admin 中多对多表单字段不工作

0 投票
1 回答
1084 浏览
提问于 2025-04-17 16:19

我在阅读这个内容:

https://docs.djangoproject.com/en/1.5/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_for_manytomany

我想用 like field 来查询数据库,但出现了错误。

FieldError: 在字段 'car' 上的连接不被允许。你是不是把 'like' 拼错了?

我使用的代码是:

def formfield_for_manytomany(self, db_field, request, **kwargs):
        if db_field.name == "cars":
            kwargs["queryset"] = models.Cars.objects.filter(car_like="ford")
        return super(MyAdmin, self).formfield_for_manytomany(db_field, request, **kwargs)

1 个回答

0

这个代码本身不会引发这个错误。只有在你使用双下划线 car__like 的情况下,它才可能让连接操作产生混淆。你可以查看一下Django的查询参考,了解具体细节。

不过,也许你想要的是 __icontains,它会生成一个LIKE语句?

Foo.objects.filter(some_field__icontains='ford')

撰写回答