У меня есть несколько столбцов в модели.Я прилагаю скриншот:
Я могу искать только IP-адрес, но я также хочу искать по отделу и местоположению.Любая идея, как решить эту проблему, вот мой admin.py выглядит так:
from django.contrib import admin
from pages.models import Post, Device, DeviceType, DeviceModel, Ipaddress, DeviceGroup, Location,Department,Comment
from django_admin_listfilter_dropdown.filters import DropdownFilter, RelatedDropdownFilter
class IpaddressAdmin(admin.ModelAdmin):
prepopulated_fields = {'slug': ('ipaddress',)}
search_fields = ['ipaddress','department', 'location',]
list_display = ('ipaddress', 'machinename', 'user', 'department','location','updated',)
list_display_links =('ipaddress', 'machinename', 'user', 'department','location','updated',)
# autocomplete_fields = ['department', 'location',]
list_filter = (
('user', DropdownFilter),
('department', RelatedDropdownFilter),
('location', RelatedDropdownFilter),
)
list_per_page = 100
class DepartmentAdmin(admin.ModelAdmin):
search_fields = ['name']
class LocationAdmin(admin.ModelAdmin):
search_fields = ['description']
Следующая строка дает мне ошибку:
search_fields = ['ipaddress','department', 'location',]
Я вижу ошибку:
C: \ Users \ mohiuddin_rana \ AppData \ Local \ Programs \ Python \ Python37-32 \ lib \ site-packages \ django \ db \ models \ sql \ query.py ", строка 1087, в build_lookupподнять FieldError ('Связанное поле получило недопустимый поиск: {}'. format (lookup_name)) django.core.exceptions.FieldError: Связанное поле получило недопустимый поиск: icontains [23 / Sep / 2018 23:45:19] "GET / admin/ pages / ipaddress /? q = dev HTTP / 1.1 "500 155606
Вот модель IP в python.py
lass Ipaddress(models.Model):
ipaddress=models.CharField("Ip Address",max_length=20)
slug = models.SlugField(unique=True)
machinename=models.CharField("Machine Name",max_length=500)
user=models.CharField("User",max_length=200)
department= models.ForeignKey("Department", on_delete=models.CASCADE)
location= models.ForeignKey("Location", on_delete=models.CASCADE)
updated = models.DateField("Date Updated",null=True)
note =models.TextField()
class Meta:
verbose_name = 'IP Management'
def __str__(self):
return self.ipaddress[:50]
Как искать в нескольких столбцах?