问题:

  当我在给某一张表加上外键搜索的时候,会出现 TypeError: Related Field got invalid lookup: icontains

问题原因:

  a 表关联 b表,也就是说a表有外键关联b表,我们只需要在 b表中admin注册时候在admin类中添加外键搜索功能,那么在创建a表数据的时候,可以通过搜索拿到结果,那么这个错误来源不是这个字段 relfield_style 的错误,而是xadmin本身那个搜索框 search_fields的错误,因为b表中又有外键关联c表,b表admin中把外键添加到 search_fields 搜索字段中,从而产生搜索错误,search_fields 是声明搜索框搜索哪些字段

那,如何解决?

  只需要在每个表的admin中把过滤字段中把这个外键字段取消搜索注册,也就是说,外键字段不应该添加到 search_fields 搜索功能中, 而 relfield_style 字段应该写在 被关联的表的admin中

# 错误的课程机构表admin, search_fields 中city字段在表中又关联 citydict表,city是CourseOrg表的外键,不应该出现在search_fields字段中
class CourseOrgAdmin(object):
list_display = [‘name‘, ‘desc‘, ‘category‘, ‘click_nums‘, ‘fav_nums‘, ‘image‘, ‘address‘, ‘city‘, ‘add_time‘]
search_fields = [‘name‘, ‘desc‘, ‘category‘, ‘click_nums‘, ‘fav_nums‘, ‘image‘, ‘address‘, ‘city‘]
list_filter = [‘name‘, ‘desc‘, ‘category‘, ‘click_nums‘, ‘fav_nums‘, ‘image‘, ‘address‘, ‘city‘, ‘add_time‘] # 让其他关联此表的外键搜索功能,
relfield_style = ‘fk-ajax‘ # 正确的,主要区别是把 search_fields 中外键字段去掉 Course 关联 CourseOrg, relfield_style写在CourseOrg表中,字段来自哪些写在哪
class CourseOrgAdmin(object):
list_display = [‘name‘, ‘desc‘, ‘category‘, ‘click_nums‘, ‘fav_nums‘, ‘image‘, ‘address‘, ‘city‘, ‘add_time‘]
search_fields = [‘name‘, ‘desc‘, ‘category‘, ‘click_nums‘, ‘fav_nums‘, ‘image‘, ‘address‘]
list_filter = [‘name‘, ‘desc‘, ‘category‘, ‘click_nums‘, ‘fav_nums‘, ‘image‘, ‘address‘, ‘city‘, ‘add_time‘] # 让其他关联此表的外键搜索功能
relfield_style = ‘fk-ajax‘ # 假如课程表关联课程机构,一对多, course_org 是关联到CourseOrgA的字段
# 过滤器 list_filter 和 显示列 list_display 可以添加,搜索框 search_fields 不能加入任何外键字段
class CourseAdmin(object):
list_display = [‘course_org‘, ‘name‘, ‘desc‘, ‘detail‘, ‘learn_times‘, ‘degree‘, ‘students‘, ‘fav_nums‘, ‘image‘, ‘click_nums‘, ‘add_time‘]
search_fields = [‘name‘, ‘desc‘, ‘detail‘, ‘degree‘, ‘students‘, ‘fav_nums‘, ‘image‘, ‘click_nums‘]
list_filter = [‘course_org‘, ‘name‘, ‘desc‘, ‘detail‘, ‘learn_times‘, ‘degree‘, ‘students‘, ‘fav_nums‘, ‘image‘, ‘click_nums‘, ‘add_time‘]

Django_xadmin_TypeError: Related Field got invalid lookup: icontains的更多相关文章

  1. related Field has invalid lookup: icontains 解决方法

    models.py 文件 # coding:utf8 from django.db import models class Book(models.Model):         name = mod ...

  2. 使用xadmin搜索search_fields报错:Related Field got invalid lookup: icontains

    一.问题描述 使用xadmin实现Django后台功能时,使用search_fields = [字段名,字段名],在搜索的时候报错Related Field got invalid lookup: i ...

  3. Django中search fields报错:related Field has invalid lookup: icontains

    models.py 文件 # coding:utf8from django.db import models class Book(models.Model):        name = model ...

  4. Django admin模块使用search时报错:django.core.exceptions.FieldError: Related Field got invalid lookup: contains

    日志如下: <class 'django.core.handlers.wsgi.WSGIRequest'> ------------registered_admins: {'spaceCl ...

  5. String field contains invalid UTF-8 data when serializing a protocol buffer. Use the 'bytes' type if you intend to send raw bytes.

    [libprotobuf ERROR google/protobuf/wire_format.cc:1053] String field contains invalid UTF-8 data whe ...

  6. Django_xadmin_应用外键搜索功能错误

    问题: 当我在给某一张表加上外键搜索的时候,会出现 TypeError: Related Field got invalid lookup: icontains 问题原因: a 表关联 b表,也就是说 ...

  7. django admin 或xadmin 错误 总结

    django管理界面admin搜索报错:TypeError: Related Field got invalid lookup: icontains 报错 TypeError: Related Fie ...

  8. Django笔记:常见故障排除

    Django框架下MySQLdb模块在python3中无法使用的问题的解决方案 由于python3环境下目前还没有官方的mysqldb模块,Django框架中又强制要求使用mysqldb,为了解决这个 ...

  9. Django Model field reference

    ===================== Model field reference ===================== .. module:: django.db.models.field ...

随机推荐

  1. MSP430系列单片机特性及应用领域

    概述 MSP430系列单片机是德州仪器1996年开始推向市场的一种16位超低功耗的混合信号处理器,给人们留下的最大的亮点是低功耗而且速度快,汇编语言用起来很灵活,寻址方式很多,指令很少,容易上手.主要 ...

  2. Nacos 安装(带视频)

    疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] 疯狂创客圈 高并 ...

  3. 【重学Node.js 第5篇】部署项目到腾讯云服务器

    课程介绍看这里:https://www.cnblogs.com/zhangran/p/11963616.html 项目github地址:https://github.com/hellozhangran ...

  4. python接口测试中常见的两种接口依赖处理方式

    一.请求体的字段依赖 这种情况多数是在当前测试的接口,它的前置接口的请求体中的字段要拿来在当前的接口请求体中继续使用,比如修改用户信息的接口,该接口会使用到用户名的字段,该字段是由创建用户时的请求体中 ...

  5. C#中的Skip()和Take()

    Skip()和Take()方法都是IEnumerable<T> 接口的扩展方法,包括C#中的所有Collections类,如ArrayList,Queue,Stack等等,还有数组和字符串 ...

  6. java使用htmlunit工具抓取js中加载的数据

    htmlunit 是一款开源的java 页面分析工具,读取页面后,可以有效的使用htmlunit分析页面上的内容.项目可以模拟浏览器运行,被誉为java浏览器的开源实现.这个没有界面的浏览器,运行速度 ...

  7. centos7在线yum安装mysql时官方镜像下载过慢的解决方案

    帮客户调试数据库,搭建一测试环境,centos7最小化安装后,在线安装mysql. 步骤: 1. wget -i http://dev.mysql.com/get/mysql57-community- ...

  8. Object::connect: No such slot xxx 解决方法

    在所有代码和槽函数全部写好之后,进行编译时竟然报 No such slot xxxx,奇怪 Starting E:\01_project\03_C++\key\debug\key.exe... Obj ...

  9. APScheduler学习

    说明 APScheduler是一个 Python 定时任务框架,使用起来十分方便.提供了基于日期.固定时间间隔以及 crontab 类型的任务,并且可以持久化任务.并以 daemon 方式运行应用. ...

  10. MATLAB聚类有效性评价指标(外部 成对度量)

    MATLAB聚类有效性评价指标(外部 成对度量) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 更多内容,请看:MATLAB: Clustering ...