Django ValueError:基为10的int()的无效文本似乎与ForeignKey相关

Django ValueError:基为10的int()的无效文本似乎与ForeignKey相关,django,django-models,Django,Django Models,试图找出这个错误的根源。关于这个主题的几个SO问题和答案包括:删除以前的迁移、在模型中为字段设置默认值或使用GenericForeignKey。到目前为止,还没有人解决我的问题 我相当确定该问题与ForeignKey有关,并且已经阅读过,即使字段是CharField,也默认使用int() 以下是我正在尝试使用的模型中存在问题的字段: product_code = models.ForeignKey(Products, null=False) 这是它所指的父模型(产品)中的字段: 以下是问题发生

试图找出这个错误的根源。关于这个主题的几个SO问题和答案包括:删除以前的迁移、在模型中为字段设置默认值或使用
GenericForeignKey
。到目前为止,还没有人解决我的问题

我相当确定该问题与
ForeignKey
有关,并且已经阅读过,即使字段是
CharField
,也默认使用
int()

以下是我正在尝试使用的模型中存在问题的字段:

product_code = models.ForeignKey(Products, null=False)
这是它所指的父模型(
产品
)中的字段:

以下是问题发生的查询:

# returns 'A_17'
product_code = Products.objects.get(id=data['product_id']).code

# error triggered here:
print(ProductPositions.objects.filter(product_code=product_code))

# ValueError: invalid literal for int() with base 10: 'A_17'
所以它看起来是从端到端的字符串,但我猜使用
ForeignKey
“default”是整数或与之相关的东西。不知道如何覆盖它,因为像
default=''
这样的东西不起作用


不确定如何解决此问题,因此感谢您的反馈。

您正在使用实际代码进行查找,并且它预期主键。你可以用两种方式改变它 使用主键:

product_code = Products.objects.get(id=data['product_id'])
print(ProductPositions.objects.filter(product_code=product_code.pk))
或者使用代码(将告诉Django通过外键引用字段):


注:斯图尔特的回答确实回答了我的问题,并且消除了这个特别的错误。然而,出现了其他错误,这最终导致了一个问题,即我是如何将模型组合在一起的。解决办法是:
product_code = Products.objects.get(id=data['product_id'])
print(ProductPositions.objects.filter(product_code=product_code.pk))
product_code = Products.objects.get(id=data['product_id']).code
print(ProductPositions.objects.filter(product_code__code=product_code))