Я использую встроенную функцию для построения автозаполнения для многих полей: https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.autocomplete_fields
У меня есть следующая модель:
class Ipaddress(models.Model):
ipaddress=models.CharField(max_length=20)
slug = models.SlugField(unique=True)
machinename=models.CharField(max_length=500)
user=models.CharField(max_length=200)
department= models.ForeignKey('Department',on_delete=models.CASCADE,default='Empty')
location= models.ForeignKey('Location', on_delete=models.CASCADE)
updated = models.DateField("Date Updated",null=True)
note =models.TextField()
def __str__(self):
return self.ipaddress[:50]
class Department(models.Model):
name= models.CharField(max_length=100, unique=True)
def __str__(self):
return self.name[:50]
class Location(models.Model):
description= models.CharField(max_length=100, unique=True)
def __str__(self):
return self.description[:50]
Страница администратора находится здесь:
from django.contrib import admin
from pages.models import Ipaddress, DeviceGroup, Location,Department,
from django_admin_listfilter_dropdown.filters import DropdownFilter, RelatedDropdownFilter
class IpaddressAdmin(admin.ModelAdmin):
prepopulated_fields = {'slug': ('ipaddress',)}
search_fields = ['ipaddress']
autocomplete_fields = ['department',]
list_display = ('ipaddress', 'machinename', 'user', 'department','location','updated',)
list_filter = (
('user', DropdownFilter),
('department', RelatedDropdownFilter),
('location', RelatedDropdownFilter),
)
Если я изменяю autocomplete_fields = ['location',]
, он работает, но не работает, когда я пытаюсь сменить отдел.Также я хочу иметь автозаполнение для отдела и местоположения одновременно.
Ошибка, которую я вижу, это когда я устанавливаю autocomplete_fields = ['department',]
ERRORS:<class 'pages.admin.IpaddressAdmin'>: (admin.E040) ModelAdmin must define
"search_fields", because it's referenced by
IpaddressAdmin.autocomplete_fields.
Любая идея, как исправить эту ошибкуЯ хочу что-то вроде этого:
autocomplete_fields = ['department', 'location','user',]