如何添加自定义搜索框在 Django-admin?

我知道这是个很基本的问题。

在 Django 中,我成功地创建了一个管理面板。现在我想添加一个自定义搜索框在我的字段之一,即 Photo字段。但我不知道 如何添加自定义搜索框在 django 管理面板。如果我得到一些适当的提示,我相信我可以做到这一点。

管理员:

from django.contrib import admin




from photo.models import Photo,


class PhotoAdmin(admin.ModelAdmin):


list_display=('name','approved','approved_time','uploaded_time','user')

Py:

class Photo(models.Model):
name = models.CharField(max_length = 100)
photo = models.ImageField(upload_to = 'photos', blank=False,null=True)
approved = models.BooleanField(default = False)
approved_time = models.DateTimeField(auto_now=True,null=True,blank=True)
uploaded_time = models.DateTimeField()
description = models.CharField(max_length = 500 , blank = False , null = True)
keyword = models.CharField(max_length = 500 , blank = False , null = True)
image_id = models.CharField(max_length=300, blank=True, null=True)
Certified = models.BooleanField(default = False)
approved_by = models.CharField(max_length = 100)
user = models.ForeignKey(User)
total_download = models.IntegerField(default=0)
watermarked_image = models.ImageField(upload_to = 'temp', blank=True,null=True)

我想添加一个自定义搜索框在这个 Photo领域的图像可以搜索它的 ID。现在我怎样才能添加这个搜索框在我的上述给定的模型。

64611 次浏览

使用 ModelAdminsearch_fields属性:

class PhotoAdmin(admin.ModelAdmin):
...
search_fields = ['name', 'description', 'user__related_fieldname','keyword', ]

由于业力低,无法回复。

但是别忘了注册管理模型,比如

Admin.py

from django.contrib import admin
from .models import *


admin.site.register(Photo, PhotoAdmin)

当你写道:

admin.site.register([Photo, PhotoAdmin])

你在管理中注册了两个模型: Photo 和 PhotoAdmin,你必须为它注册 Model 和 ModelAdmin,像这样:

admin.site.register(Photo, PhotoAdmin)

添加丹沃尔特斯的答案,你也可以搜索,如果你不知道确切的字与 __icontains

class PhotoAdmin(admin.ModelAdmin):
...
search_fields = ['name__icontains', 'description', 'user__related_fieldname','keyword__icontains',
]

它相当于 SQL 中的 LIKE