Django ImageField问题

时间:2009-05-12 08:55:07

标签: python django django-models

我有一个类似的模型

Class Student(models.Model):
"""A simple class which holds the basic info
of a student."""

name = models.CharField(max_length=50)
age = models.PositiveIntegerField()
photo = models.ImageField(upload_to='foobar', blank=True, null=True)

我们可以看到照片字段是可选的。我希望所有将他们的图像保存在大学数据库中的学生。为此我做了这个

>>> Student.objects.exclude(photo__name=None)

但是我收到了这个错误:

FieldError: Join on field 'photo' not permitted.

那么,我怎样才能提取所有拥有照片的学生?

对此有任何帮助,我们将不胜感激。 提前谢谢。

1 个答案:

答案 0 :(得分:12)

它不起作用,因为field lookups仅适用于其他模型。在此处,name是您photo字段的返回值的属性。

请改为尝试:

Student.objects.exclude(photo__isnull=True)

最好使用isnull,而不是将等式与None进行比较。

编辑:

Jeff Ober的建议:

Student.objects.exclude(photo='')

他说过滤是对存储在DB中的实际值进行的。在文件字段的情况下,文件的路径。