django admin中配置搜索域是一个外键时如何处理
2016-06-14 15:33
459 查看
python 2.7.11
django 1.8.4
错误内容:related Field has invalid lookup: icontains
我原来默认认为在处理外键搜索的时候,django会自动将该外键的行数据以str()化之后进行搜索,但其实并不是这样的,如果将外键加入到搜索域中,需要明确写出来。
这个是我从网上查到的解决方案,测试可用,如下:
models.py 文件
# coding:utf8
from django.db import models
class Book(models.Model):
name
= models.CharField(max_length=255)
title
= models.CharField(max_length=255)
price
= models.IntegerField()
...
class Category(models.Model):
CATEGORY_CHOICES
= (
('00',
'English'),
('01',
'Computer'),
)
book
= models.ForeignKey(Book)
category
= models.CharField(max_length=255, choices=CATEGORY_CHOICES)
remark
= models.CharField(max_length=255)
...
admin.py 文件(以 category 为例)
# coding: utf8
from django.contrib import admin
from django import forms
from .models import Category
class CategoryAdmin(admin.ModelAdmin):
search_fileds
= ('book__name',
'book__title',
'book__price',
'category') #
设置搜索栏范围,如果有外键,要注明外键的哪个字段,双下划线
list_display
= ('book', 'category') #
在页面上显示的字段,若不设置则显示 models.py 中 __unicode__(self) 中所返回的值
list_display_links
= ('category') #
设置页面上哪个字段可单击进入详细页面
fields
= ('category', 'book') #
设置添加/修改详细信息时,哪些字段显示,在这里 remark 字段将不显示
admin.site.register(Category, CategoryAdmin)
[说明]
在使用 Django admin 系统中的搜索时可能会出现“related
Field has invalid lookup: icontains”错误,主要原因是外键查询是需要指定相应的字段的。外键不应该只是一个model,而该是另一个表的明确的一个字段。所以我们需要指定特定的字段
"本表外键字段__外键所在表需查询字段"。
django 1.8.4
错误内容:related Field has invalid lookup: icontains
我原来默认认为在处理外键搜索的时候,django会自动将该外键的行数据以str()化之后进行搜索,但其实并不是这样的,如果将外键加入到搜索域中,需要明确写出来。
这个是我从网上查到的解决方案,测试可用,如下:
models.py 文件
# coding:utf8
from django.db import models
class Book(models.Model):
name
= models.CharField(max_length=255)
title
= models.CharField(max_length=255)
price
= models.IntegerField()
...
class Category(models.Model):
CATEGORY_CHOICES
= (
('00',
'English'),
('01',
'Computer'),
)
book
= models.ForeignKey(Book)
category
= models.CharField(max_length=255, choices=CATEGORY_CHOICES)
remark
= models.CharField(max_length=255)
...
admin.py 文件(以 category 为例)
# coding: utf8
from django.contrib import admin
from django import forms
from .models import Category
class CategoryAdmin(admin.ModelAdmin):
search_fileds
= ('book__name',
'book__title',
'book__price',
'category') #
设置搜索栏范围,如果有外键,要注明外键的哪个字段,双下划线
list_display
= ('book', 'category') #
在页面上显示的字段,若不设置则显示 models.py 中 __unicode__(self) 中所返回的值
list_display_links
= ('category') #
设置页面上哪个字段可单击进入详细页面
fields
= ('category', 'book') #
设置添加/修改详细信息时,哪些字段显示,在这里 remark 字段将不显示
admin.site.register(Category, CategoryAdmin)
[说明]
在使用 Django admin 系统中的搜索时可能会出现“related
Field has invalid lookup: icontains”错误,主要原因是外键查询是需要指定相应的字段的。外键不应该只是一个model,而该是另一个表的明确的一个字段。所以我们需要指定特定的字段
"本表外键字段__外键所在表需查询字段"。
相关文章推荐
- django中使用jquery ajax post数据出现403错误的解决办法(两种方法)
- django使用ajax post数据出现403错误如何解决
- windows+apache+mod_python配置django运行环境
- python Django连接MySQL数据库做增删改查
- django自定义Field实现一个字段存储以逗号分隔的字符串
- Django框架利用ajax实现批量导入数据功能
- python Django批量导入数据
- BootStrap扔进Django里的方法详解
- 在Python的Django框架中加载模版的方法
- 在Django中使用Sitemap的方法讲解
- 详解Django中的form库的使用
- Django中的CACHE_BACKEND参数和站点级Cache设置
- 剖析Django中模版标签的解析与参数传递
- Python中DJANGO简单测试实例
- Python的Django框架中的数据库配置指南
- 在Django的上下文中设置变量的方法
- 在Python的Django框架中编写编译函数
- 以一个投票程序的实例来讲解Python的Django框架使用
- 在Django的URLconf中进行函数导入的方法
- 在Python的Django框架中生成CSV文件的方法