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

cvxl0en2  于 2023-03-24  发布在  Go
关注(0)|答案(4)|浏览(142)

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

管理员姓名

from django.contrib import admin

from photo.models import Photo

class PhotoAdmin(admin.ModelAdmin):
    list_display = ('name', 'approved', 'approved_time', 'uploaded_time', 'user')

models.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搜索图像。现在我如何在我上面的给定模型中添加此搜索框。

gg0vcinb

gg0vcinb1#

使用ModelAdminsearch_fields属性:

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

avkwfej42#

由于业力低,无法回复。
但不要忘记注册管理员模型,如

管理员py

from django.contrib import admin
from .models import *

admin.site.register(Photo, PhotoAdmin)
ajsxfq5m

ajsxfq5m3#

当你写:

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

您在admin中注册两种模式:Photo和PhotoAdmin,您必须为其注册Model和ModelAdmin,如下所示:

admin.site.register(Photo, PhotoAdmin)
holgip5t

holgip5t4#

添加Dan Walters的答案,如果您不知道确切的单词,也可以使用__icontains进行搜索

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

它相当于SQL中的LIKE

相关问题