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