我使用以下Manager重命名模型中的字段:
class CustomManager(models.Manager):
def get_queryset(self):
return super(CustomManager, self).get_queryset().values(user=F('user_a'),target=F('user_b'),user_relationship=F('user_a_relationship'),target_relationship=F('user_b_relationship'))
如果可以,则过滤有效:
models.CustomManager.objects.filter(user_relationship='P')
但是当我尝试使用带注释的字段进行更新时,会引发该字段不存在的错误。
models.CustomManager.objects.filter(user_relationship='P').update(user_relationship='A')
django.core.exceptions.FieldDoesNotExist: CustomManager has no field named 'user_relationship'
当然可以使用原始字段名称:
models.CustomManager.objects.filter(user_relationship='P').update(user_a_relationship='A')
是否可以通过带注释的字段发送更新?