我一直得到一个以10为基数的int()的无效文本错误。有问题的字段是一个类的外键,该类只有一个属性,并且该属性是一个charfield,所以我不明白为什么会一直出现这个错误。如果我试图查询progress类,它可以正常工作,但是当我在tasks类中搜索progress值时,会得到错误。
我已经试过清除我的迁移并重新迁移,但没有效果。
class Program(models.Model):
name = models.CharField(max_length=30)
class Tasks(models.Model):
program = models.ForeignKey(Program, max_length=30, on_delete=models.CASCADE)
壳
>>> from app.models import *
>>> a = Program.objects.filter(name="GM")
>>> print(a)
<QuerySet [<Program: GM>]>
>>> a = Tasks.objects.filter(program="GM")
ValueError: invalid literal for int() with base 10: 'GM'
我应该能够抓取这个对象并操纵它,我确信有一个对象的程序设置为“gm”。
最佳答案
你的询问方式不对。
它应该是program__name="GM"
而不是program="GM"
。
a = Tasks.objects.filter(program__name="GM")
它试图将字符串
program="GM"
与程序的整数"GM"
相匹配,从而产生错误id
。