【发布时间】:2018-09-24 03:46:49
【问题描述】:
我只能搜索 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 raise 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
这是python.py中的IP模型
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]
如何在多列中搜索?
【问题讨论】:
-
你能发布
Ipaddress模型吗?
标签: python django django-models