查询数据库中的CalculatedAmt字段时遇到麻烦。实际上,根据错误代码,该字段甚至不存在。但是,我将其包含在Models.py中,甚至可以在Django的管理界面中看到它。
这是我的代码:
Model.py-我没有加入表,因为我不需要查询联接
class Customer(models.Model):
Customer_Name_P = models.CharField(max_length=30, default="missing")
Customer_TelNo = models.CharField(max_length=8, default="missing")
Postal_Code = models.CharField(max_length=6, default="missing")
def __str__(self):
return "%s" % self.Customer_Name_P
class Transaction(models.Model):
DocRef = models.CharField(max_length=10,default="missing")
DocDate = models.DateField()
AcCrIsMinus1 = models.CharField(max_length=10,default="missing")
AcCurWTaxAmt = models.CharField(max_length=10,default="missing")
HomeWTaxAmt = models.CharField(max_length=10,default="missing")
CalculatedAmt = models.CharField(max_length=10, default="missing")
ProjectCode = models.CharField(max_length=10,default="missing")
Location = models.CharField(max_length=10,default="missing")
Sales_Person = models.CharField(max_length=10,default="missing")
AcCode = models.CharField(max_length=8,default="missing")
Customer_Name = models.CharField(max_length=30,default="missing")
def __str__(self):
return "%s" % self.id
class Salesperson(models.Model):
Sales_Person_P = models.CharField(max_length=10,default="missing",primary_key=True)
Sales_Person_Name = models.CharField(max_length=10,default="missing")
Sales_Person_Contact = models.CharField(max_length=10,default="missing")
def __str__(self):
return "%s" % self.Sales_Person_P
class Account(models.Model):
AcCode_P = models.CharField(max_length=8, default="missing",primary_key=True)
Customer_Name = models.CharField(max_length=30,default="missing")
AcCur = models.CharField(max_length=3, default="missing")
def __str__(self):
return "%s" % self.AcCode_P
在shell中查询(用于表):
Transaction.objects.all().filter(Sales_Person=Sales_Person).values('DocRef','DocDate','AcCrIsMinus1','HomeWTaxAmt','ProjectCode','Customer_Name','Location')
错误消息:
django.core.exceptions.FieldError: Cannot resolve keyword 'CalculatedAmt' into field. Choices are: AcCode, AcCrIsMinus1, AcCurWTaxAmt, Customer_Name, DocDate, DocRef, HomeWTaxAmt, Location, ProjectCode, Sales_Person, id
这是管理界面中的Transaction实例的屏幕截图: screenshot
python manage.py showmigrations输出的屏幕截图: screenshot
迁移0001_initial文件的屏幕截图 screenshot
谢谢!
答案 0 :(得分:1)
此错误并不表示该字段缺失。如果模型字段存在问题,则会引发 FieldError异常。发生这种情况有几个原因:
仅供参考,对于不存在的字段,有一个 FieldDoesNotExist 例外。当模型或模型的父级上不存在请求的字段时,将通过模型的$orders = "";
foreach($auth_tokens as $auth_token) {
// ....
//echo '<pre>' . var_export($xml, true) . '</pre><br>';
$orders .= $xml->asXML();
}
$xml = simplexml_load_string("<Orders>$orders</Orders>");
header('content-type: text/xml');
echo $xml->asXML();
方法来引发该值。
错误是因为您先获取_meta.get_field()
,然后尝试过滤。当您提取所有内容时,会获得所有字段,然后在值中不包含all()
。
CalculatedAmt
t = Transaction.objects.filter(Sales_Person__iexact=Sales_Person)
对象将包含Transaction的所有字段,因此不需要t
,例如,您可以通过.values
来检索它们。 P.s. t.CalculatedAmt
表示完全匹配,无需关心大小写。
此外,我假设您已尝试将2个模型与ixact
连接在一起。但是您做错了方法。
您应该使用Sales_Person field
,OnetoOne
或ForeignKey
关系之一。我将使用ManytoMany
,假设 销售人员可以进行很多交易,但每笔交易只能属于一个人 。
ForeignKey