Django ORM-在values()中创建select_retried字段的别名
我试图使用Django ORM-在values()中创建select_retried字段的别名,django,django-orm,Django,Django Orm,我试图使用extra将无法读取的字段agreement\u vendors\u commodies\u list\u commodies\u unique\u id重命名为一些别名,但得到Uknown列“agreement\u vendors\u commodies\u list\u commodies\u unique\u id”错误,如果我不使用任何别名,一切正常。我做错了什么?我可以将extra与select\u selected一起使用吗 orders_qs = Order.object
extra
将无法读取的字段agreement\u vendors\u commodies\u list\u commodies\u unique\u id
重命名为一些别名
,但得到Uknown列“agreement\u vendors\u commodies\u list\u commodies\u unique\u id”
错误,如果我不使用任何别名,一切正常。我做错了什么?我可以将extra
与select\u selected
一起使用吗
orders_qs = Order.objects.select_related('agreement_vendors_merchandise_list')\
.extra(select={'some_alias': 'agreement_vendors_merchandise_list__merchandise_unique_id'})\
.values('some_alias')
模型:
class Order(models.Model):
agreement_vendors_merchandise_list = models.ForeignKey(AgreementVendorsMerchandiseList,
on_delete = models.CASCADE,
related_name = 'agreement_vendors_merchandise_list')
class AgreementVendorsMerchandiseList(models.Model):
merchandise_unique = models.ForeignKey(MerchandiseUnique,
on_delete = models.CASCADE,
related_name = 'pricelist_merchandise_unique')
更新:
此代码(不带别名)工作正常:
orders_qs = Order.objects.select_related('agreement_vendors_merchandise_list')\
.values('agreement_vendors_merchandise_list__merchandise_unique_id')
唯一\标识双下划线。您的字段称为商品\唯一。不是商品\u唯一\u id。如果您需要在额外查询中获取此字段的id,那么它应该是商品\u唯一\u id。如果不是,那么只需要相关字段的名称。抱歉,但我不同意YouMerchance\u唯一=models.ForeignKey(MerchandiseUnique)-这是您的代码。不是我的。您正在尝试选择模型上不存在的字段。安德烈,在我看来,这是绝对标准的Django语法。问题在于定义别名。而不是select_retried语法本身。