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)
答案 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']