将models.IntegerField修改为models.ForeignKey im model时出错,使用Django的双下划线约定
Posted
技术标签:
【中文标题】将models.IntegerField修改为models.ForeignKey im model时出错,使用Django的双下划线约定【英文标题】:Getting error in modification of models.IntegerField to models.ForeignKey im model ,Using Django's double underscore convention 【发布时间】:2016-11-25 07:48:54 【问题描述】:raise TypeError('Related Field got invalid lookup: %s' % lookup_type)
TypeError: Related Field got invalid lookup: icontains
如果我在模型(Django/python)和相应的表列中将models.IntegerField
修改为models.ForeignKey
,那么尽管使用了 Django 的双下划线约定,为什么我会收到与我包含相关的错误?
【问题讨论】:
向我们展示您的models.py文件和一些带有错误回溯的代码,然后我们可以更好地帮助您。 您是否在管理面板中收到此错误?如果是,那么我认为来源是错误的:您不能直接过滤外键。您过滤外键模型的某些字段。例如:foreignkey__fkfieldname
。请添加一些更相关的代码,尤其是来自models.py
和admin.py
。
【参考方案1】:
iexact 或 icontainsn 用于匹配大小写字母的地方。 对于整数,它们没有小写或大写整数。所以,你应该使用包含图标之外的内容。
【讨论】:
外键不能使用包含。你应该这样做 activity = Activity.objects.filter(objectWithForeignKeyName__in = [1])以上是关于将models.IntegerField修改为models.ForeignKey im model时出错,使用Django的双下划线约定的主要内容,如果未能解决你的问题,请参考以下文章