如何在 Django-admin 中添加自定义搜索框?
Posted
技术标签:
【中文标题】如何在 Django-admin 中添加自定义搜索框?【英文标题】:How to add custom search box in Django-admin? 【发布时间】:2015-04-15 06:27:09 【问题描述】:我知道这将是一个非常基本的问题。
在 Django 中,我已经成功创建了一个管理面板。现在我想在我的一个字段中添加一个自定义搜索框,即Photo
字段。但我不知道如何在 django-admin 面板中添加自定义搜索框。如果我得到一些适当的提示,我相信我可以做到。
Admin.py:
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
搜索图像。现在如何在上面给定的模型中添加这个搜索框。
【问题讨论】:
附带说明,不要使用Certified
使用certified
代替属性名称。
【参考方案1】:
使用ModelAdmin
的search_fields
属性:
class PhotoAdmin(admin.ModelAdmin):
...
search_fields = ['name', 'description', 'user__related_fieldname','keyword', ]
【讨论】:
感谢您的回复.. 我想按 ID 搜索项目,我应该在search_fields
参数中包含 id
或 photo.id
吗?
是的,将'id'
字段添加到search_fields
。
后面的也可以搜索相关型号字段search_fields = ('name', 'relatedfield__name')
【参考方案2】:
由于业力低而无法回复..
但也不要忘记注册 Admin Model,例如
admin.py
from django.contrib import admin
from .models import *
admin.site.register(Photo, PhotoAdmin)
【讨论】:
Got AttributeError: type object 'ModelAdmin' has no attribute '_meta'。 我修复了答案中的代码,以避免让复制粘贴者感到头疼。 ;)【参考方案3】:当你写作时:
admin.site.register([Photo, PhotoAdmin])
您在 admin 中注册了两个模型:Photo 和 PhotoAdmin,您必须为其注册 Model 和 ModelAdmin,如下所示:
admin.site.register(Photo, PhotoAdmin)
【讨论】:
以上是关于如何在 Django-admin 中添加自定义搜索框?的主要内容,如果未能解决你的问题,请参考以下文章