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语法本身。