将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.pyadmin.py 【参考方案1】:

iexact 或 icontainsn 用于匹配大小写字母的地方。 对于整数,它们没有小写或大写整数。所以,你应该使用包含图标之外的内容。

【讨论】:

外键不能使用包含。你应该这样做 activity = Activity.objects.filter(objectWithForeignKeyName__in = [1])

以上是关于将models.IntegerField修改为models.ForeignKey im model时出错,使用Django的双下划线约定的主要内容,如果未能解决你的问题,请参考以下文章

django多对多

有效计数对象

Django:select_related到一个表vs表的字段

如何将空值存储为整数字段

南迁移 DateField 到 IntegerField

将修改后的数据发送到 DRF API 中的序列化程序