每当我尝试以下代码时,就会出现标题错误:
DCountryObj = DCountry.objects.filter(CountryCode=NewInputRefObj.CountryCode).get()
我不太明白它在说什么,因为我只是从一个对象中提取countrycode,用于另一个模型对象创建的过滤器中。见相关模型:
class DCountry(models.Model):
CountryCode = models.IntegerField(primary_key=True)
Country = models.CharField(max_length=15)
SPI = models.IntegerField()
def __str__(self):
return self.Country
NewInputRefObj指由以下模型制成的对象:
class InputRef (models.Model):
CountryCode = models.ForeignKey(DCountry, on_delete=models.CASCADE)
请给我指出我应该在这里尝试的正确方向,因为我不明白为什么它说它与int()有问题
试试这句话:
或者只是
似乎当您调用第一个
.CountryCode
时,您得到了DCountry
对象,然后您必须查询它的属性.CountryCode
编辑
(然后查询
DCountryObj.SPI
=)我不明白你想达到什么目的。为什么不直接使用
NewInputRefObj.CountryCode
,因为它通过外键引用相关的DCountry
对象我认为如果你想让这个查询工作,你就必须遵循相关对象/属性链。按CountryCode筛选DCountry时,需要传入一个整数,但
NewInputRefObj.CountryCode
实际上是相关的DCountry
对象,因此会出现错误,因为它需要一个int
或可以使用int()
转换为int的东西,但会接收DCountry
您必须使用}:
NewInputRefObj.CountryCode.CountryCode
来获取实际要筛选的primary_key
{但同样,在这种情况下,最好使用
NewInputRefObj.CountryCode
获取相关对象,因为您使用的是唯一的主键,并且无论如何只能从该查询返回一个对象,即通过ForeignKey
关系链接的对象相关问题 更多 >
编程相关推荐