Django中search fields报错:related Field has invalid lookup: icontains
2017-12-22 09:14
1131 查看
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,而该是另一个表的明确的一个字段。所以我们需要指定特定的字段 "本表外键字段__外键所在表需查询字段"。
# 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搜索页面,并解决“Related Field has invalid lookup: icontains”错误
- [Django1.4]admin模块使用出现Related Field has invalid lookup: icontains的错误
- django学习记录--在admin界面进行搜索操作后,报错:Related Field got invalid lookup: icontains
- admin模块使用出现Related Field has invalid lookup: icontains的错误
- django管理界面admin搜索报错:TypeError: Related Field got invalid lookup: icontains
- django.relatedField-关联域
- django学习记录-- 添加haystack搜索框架时报错:AttributeError: 'BlogIndex' object has no attribute 'fields'
- django.relatedField-关联域
- django Course has no field named
- django使用search_fields报错(in get_lookup_constraint)
- django后台admin中的search_fields属性用法详解
- ElasticSearch fielddata is disabled on text fields by default. set fielddata=true on interests
- django admin 或xdmin list_display search_fields list_filter 如果显示搜索外键或多对多字段
- [django-xadmin]如何在 search_fields和list_filter 中包含外键字段
- In DYNPFIELD_ATTR field LENGTH has the invalid value
- 修改ListItem时出现Error: Invalid data has been used to update the list item. The field you are trying to update may be read only.
- [django]如何在 search_fields 中包含外键字段
- django manager use_for_related_fields使用
- Django -- Cannot resolve keyword 'name_icontains' into field
- django如何在 search_fields 中包含外键字段