gpt4 book ai didi

python - 如何为 Django 模型字段创建别名?

转载 作者:太空狗 更新时间:2023-10-29 18:28:01 25 4
gpt4 key购买 nike

我的 Django 模型有一个名为“updatedOn”的日期时间字段,我需要在这个模型上使用一个库函数来计算一些统计数据,但该函数假定日期时间字段名称为“time”,下面是该函数的使用方式日期时间:

c = qset.filter(time__year=tt.year, time__month=tt.month, time__day=tt.day).count();

在不接触库代码的情况下,如何创建一个别名“time”来引用“updatedOn”字段,以便我可以使用该函数?

最佳答案

这个老Django Snippet ,为我工作,直到 Django 1.11。正如@Jaberwocky 评论的那样,virtual_onlyDjango 2.0 中被删除了

然而,deprecation warning读到该字段已弃用 in favor of private_only , 尽管在上述链接的删除功能中没有提到这一点。

class AliasField(models.Field):
# def contribute_to_class(self, cls, name, virtual_only=False):
# '''
# virtual_only is deprecated in favor of private_only
# '''
# super(AliasField, self).contribute_to_class(cls, name, virtual_only=True)
# setattr(cls, name, self)

def contribute_to_class(self, cls, name, private_only=False):
'''
virtual_only is deprecated in favor of private_only
'''
super(AliasField, self).contribute_to_class(cls, name, private_only=True)
setattr(cls, name, self)

def __get__(self, instance, instance_type=None):
return getattr(instance, self.db_column)


class Order(models.Model):
"""
The main order model
"""
number = AliasField(db_column='id')

关于python - 如何为 Django 模型字段创建别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18985466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com