我有以下情况。有一个用于项目的模型和一个用于项目图像的模型。
class Project(models.Model):
name = models.CharField(max_length=300)
... #some more fields
class ProjectImage(models.Model):
image = models.ImageField(upload_to = "uploads/")
projekt = models.ForeignKey(Projekt)
现在,我想成为一个管理面板用户来过滤掉管理区域中没有任何图像的所有项目。
我已经设法在概述中有一个绿色或红色的图标,无论它是否附加了图像。它与模型管理员上的自定义功能一起使用(这可能不是最快的解决方案,但工作正常)。
class ProjectAdmin(admin.ModelAdmin):
def image(self, obj):
img = "no"
images = ProjectImage.objects.only('id',).filter(project=obj)
if images:
img = "yes"
return "<img src='"+ADMIN_MEDIA_PREFIX+"img/admin/icon-"+img+".gif' />"
list_display = ('name', 'bild')
但是 AFAIK 我不能使用类似的方法来返回一个布尔值并将其作为自定义过滤器传递。
我也看过这个:http ://twigstechtips.blogspot.ch/2010/10/django-create-custom-admin-model-filter.html但看起来自定义过滤器必须附加到模型字段和我在项目中没有图像字段。
我还有其他方法可以做到这一点吗?谢谢