次のような状況があります。プロジェクト用のモデルとプロジェクト イメージ用のモデルがあります。
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')
しかし、私の知る限り、同様の方法を使用してブール値を返し、それをカスタムフィルターとして渡すことはできません。
これも見ました: http://twigstechtips.blogspot.ch/2010/10/django-create-custom-admin-model-filter.htmlしかし、カスタム フィルターをモデル フィールドにアタッチする必要があるようです。プロジェクトに画像フィールドがありません。
これを行う他の方法はありますか?どうも