Django Admin:更改外键的选择框以搜索自动完成,例如搜索对象

时间:2015-04-09 17:05:44

标签: python django search autocomplete django-admin

Django管理面板在模型的对象列表上有search_fields的搜索自动完成功能,但是现在我有3000个用户。手动添加用户对于选择框很困难;我需要与搜索字段相同的行为来选择用户foreinkey User

如何在表单上包含Django搜索功能以便在管理面板内进行编辑?

from myapp.models import Red 
from django.contrib.auth.models import User

class Red(models.Model):
    customer = models.ForeignKey(User, verbose_name="Cliente")
    pub_date = models.DateTimeField(default=datetime.now, blank=True)

2 个答案:

答案 0 :(得分:7)

Django没有针对管理员外键的内置自动完成功能,但raw_id_fields选项可能有所帮助:

class RedAdmin(admin.ModelAdmin):
    raw_id_fields = ("customer", )

如果您想要真正的自动填充,那么您必须使用第三方应用,例如django-autocomplete-light或部分other solutions

答案 1 :(得分:4)

自Django 2.0起,您可以使用autocomplete_fields为外键生成自动填充字段。

class UserAdmin(admin.ModelAdmin):
    search_fields = ['username', 'email']

class RedAdmin(admin.ModelAdmin):
    autocomplete_fields = ['customer']