admin模块使用出现Related Field has invalid lookup: icontains的错误

来源:互联网 发布:剑雨江湖进阶数据技巧 编辑:程序博客网 时间:2024/05/17 23:25
首先看下log
TypeError at /admin/order/order/Related Field has invalid lookup: icontainsRequest Method: GETRequest URL: http://localhost:8888/admin/order/order/?q=11Django Version: 1.4.5Exception Type: TypeErrorException Value: Related Field has invalid lookup: icontainsException Location: /home/lzz/Virtualenv/blog1_django_1.4/env/local/lib/python2.7/site-packages/django/db/models/fields/related.py in get_prep_lookup, line 142Python Executable: /home/lzz/Virtualenv/blog1_django_1.4/env/bin/pythonPython Version: 2.7.3Python Path: ['/home/lzz/Virtualenv/blog1_django_1.4/eshop', '/home/lzz/Virtualenv/blog1_django_1.4/env/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg', '/home/lzz/Virtualenv/blog1_django_1.4/env/local/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg', '/home/lzz/Virtualenv/blog1_django_1.4/env/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg', '/home/lzz/Virtualenv/blog1_django_1.4/env/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg', '/home/lzz/Virtualenv/blog1_django_1.4/env/lib/python2.7', '/home/lzz/Virtualenv/blog1_django_1.4/env/lib/python2.7/plat-linux2', '/home/lzz/Virtualenv/blog1_django_1.4/env/lib/python2.7/lib-tk', '/home/lzz/Virtualenv/blog1_django_1.4/env/lib/python2.7/lib-old', '/home/lzz/Virtualenv/blog1_django_1.4/env/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/home/lzz/Virtualenv/blog1_django_1.4/env/local/lib/python2.7/site-packages', '/home/lzz/Virtualenv/blog1_django_1.4/env/lib/python2.7/site-packages']Server time: 星期三, 15 五月 2013 08:10:00 +0800

这是在两个实体table中,外键引用以后,admin模块添加search框出现的问题,来看看情况 


models.py中

class Product(models.Model):name = models.CharField('product name', max_length=30)Order(models.Model):product = models.ForeignKey("Product") #外键引用产品类

admin.py中

class OrderAdmin(admin.ModelAdmin):search_fields = ('product',)  #问题就是出在这里

在admin中我们


就出现上面的错误了!


解决办法

admin.py的代码修改一下

class OrderAdmin(admin.ModelAdmin):search_fields = ('product__name',)  #问题就是出在这里
作为外键django默认是把id和order类关联,这里不能直接写product , 而是product的一个具体字段,product是个对象,没法直接查询。

注! 这里是两个下划线 product__name

0 0
原创粉丝点击