table:
CREATE TABLE `host` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cmdb_sn` varchar(32) NOT NULL,
`internal_ip` varchar(16) NOT NULL,
`external_ip` varchar(16) NOT NULL,
`idc_name` varchar(16) NOT NULL,
`status` enum('online','unused','repair') DEFAULT 'unused',
`description` varchar(32) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8
CREATE TABLE `service` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`host_id` int(11) unsigned NOT NULL,
`port` int(10) unsigned NOT NULL,
....
PRIMARY KEY (`id`),
UNIQUE KEY `host_id` (`host_id`,`port`),
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1
model:
class Host(models.Model):
# id=models.IntegerField(max_length=10)
cmdb_sn= models.CharField(max_length=32)
internal_ip= models.CharField(max_length=16)
external_ip= models.CharField(max_length=16)
idc_name= models.CharField(max_length=16)
status = models.IntegerField(max_length=10)
description = models.CharField(max_length=32)
def __unicode__(self):
return '%s' %(self.internal_ip)
class Meta:
db_table = 'host'
ordering=['internal_ip']
class Service(models.Model):
host = models.ForeignKey(Host)
port= models.IntegerField(max_length=10)
role= models.IntegerField(max_length=10)
status= models.IntegerField(max_length=10)
description = models.CharField(max_length=32)
def __unicode__(self):
return '%s id:%s host:%s' %(self.port,self.id,self.host)
class Meta:
db_table = 'service'
ordering=['port']
admin:
class ServiceAdmin(admin.ModelAdmin):
list_display = ('port', 'host','role','status','description')
search_fields = ('id','port', 'host,'role','status')
service页面查询host时出错related Field has invalid lookup: icontains
改 search_fields =('id','port', 'host__internal_ip','role','status') ok~
class ServiceAdmin(admin.ModelAdmin):
list_display = ('port', 'host','role','status','description')
search_fields = ('id','port', 'host__internal_ip','role','status')
Related Field has invalid lookup: icontains。
原来外键查询是需要指定相应的字段的。外键不只是一个model,而该是另一个表的明确的一个字段。
所以我们需要指定特定的字段 "本表外键字段__外键所在表需查询字段"
参考:http://code.djangoproject.com/ticket/2331
Closing as Ian stated it was an error on his part. Ian: If there's still a problem with Django that needs to be fixed, please reopen.
分享到:
相关推荐
错误内容:related Field has invalid lookup: icontains 我原来默认认为在处理外键搜索的时候,django会自动将该外键的行数据以str()化之后进行搜索,但其实并不是这样的,如果将外键加入到搜索域中,需要明确写...
1.在写循环的时候遇见这个的 原创文章 96获赞 50访问量 6万+ 关注 私信 展开阅读全文 作者:itwangyang520
Nginx常见的错误和解决方法,1、Nginx 常见...启动时如果报异常error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory 这说明我们的环境还不是和启动需要
cmake-3.18.1 64位安装包。官网下载的。
vue樱花漫天效果对应文件
高德地图自定义运动轨迹
config.sub Invalid configuration `xxx': machine/OS `XXX' not recognized问题解决
Invalid property 'URIType' of bean class [com.alibaba.citrus.service.uribroker.uri.GenericURIBroker]: Bean property 'URIType' is not writable or has an invalid setter method. Does the parameter type ...
问题1: 启动时出现:端口被占用 nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx 解决: 1.先使用ps -e | grep nginx查看是否已经启动了nginx 2.如果没有的话则按照提示,查看0.0....
重装win7旗舰版系统后启动时提示invalid partition table的解决方法.docx
cmake-3.18.2.tar.gz源码,官网下载太慢,这个备份一下,顺便给大家留一份。
添加cookies到浏览器 driver.delete_all_cookies() with open('cookiesJsonFile.json', 'r') as JsonFile: cookiesInfo = json.loads(JsonFile.read()) print(type(cookiesInfo), cookiesInfo) ...
解决raise InvalidURL(f"Invalid URL url!r: No host supplied")
如何解决使用keil下载或者调试程序是提示的“Invalid ROM Table”信息!需要有英文的阅读能力!
问题:win10新装系统,google64稳定版本,浏览器新装并且前期使用良好,可能系统更新或者其它原因突然出现STATUS_INVALID_IMAGE_HASH,并且所有页面崩溃,包括设置均无法打开并访问。 原因:Google在79版本(2019年...
硬盘驱动器或者网络驱动器已经不可用。1、单击 开始菜单>>运行,键入 regedit 并单击确定按钮
genymotion manager一直打不开,一直报如下错误, Loading Genymotion library Genymotion directory: G:\Genymotion Trying to initialize engine Invalid path: VBoxManage Initialize Engine: failed 因为少了这...
Delphi 10.3 ,程序运行到DataModule2.ClientDataSet1.ApplyUpdates(0);语句时,提示“Invalid parameter”错误
Python 爬虫之超链接 url中含有中文出错及解决办法 python3.5 爬虫错误: UnicodeEncodeError: 'ascii' codec can't encode characters 这个错误是由于超链接中含有中文引起的,超链接默认是用ascii编码的,所以不...
yolov5如何训练以及,训练时遇到的一些报错问题解决