【问题标题】:Django ORM filter by singular field nameDjango ORM 按单数字段名过滤
【发布时间】:2026-02-18 23:00:01
【问题描述】:

是否可以通过一些额外/单一版本的字段名称来过滤模型?

例如,使用类似模型(其中authorsCharField,其中包含python-list,例如['Johnny']):

class Movie(models.Model):
title = models.CharField(max_length=100, null=False, blank=False)
actors = models.CharField(max_length=250, null=True, blank=True)

并查询类似Movie.objects.filter(input) 的内容,其中输入为<QueryDict: {'actor': ["['Johnny']", "['Pablo']"]}>

有人知道怎么解决吗?

提前致谢。

【问题讨论】:

    标签: django django-models django-rest-framework django-orm


    【解决方案1】:

    按照您制作模型的方式,您需要将演员保存为字符串,例如Johnny, Pablo。因此,您可以进行Movie.objects.all().filter(actors='Johnny, Pablo') 之类的查询。

    通常,这应该使用many-to-one relationship model 完成,让您查询特定对象,让您查询多个参与者或一个本地参与者。

    【讨论】: