别名Python/Django模型查询中的函数参数

2024-05-21 08:32:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否可以使用Django模型的字段别名来查询它?在

例如:

class Book(models.Model):
    pub_date = models.DateTimeField(_('Publication Date'),
    ...

class Magazine(models.Model):
    creation_date = models.DateTimeField(_('Publication Date'),
    ...

我可以给这个类起别名,这很好:

^{pr2}$

然后查询为:

my_class.objects.all()

很好!在

我希望能化名为Book.pub_.日期&安培;杂志创建日期作为我的约会对象,所以我可以:

Book.objects.filter(my_pub_date__gt=some_date) (or my_class.objects.filter(my_pub_date__gt=some_date))

而不是:

Book.objects.filter(pub_date__gt=some_date)

谢谢


Tags: djangogtdatemodelobjectsmodelsmysome
1条回答
网友
1楼 · 发布于 2024-05-21 08:32:24

不费吹灰之力也不行。即使有可能,如果你想保持清醒,也不要这么做。在

在本例中,我将使用(a)一个抽象基类,它保存两个模型的公共信息。在

class Publication(models.Model):
    pub_date = models.DateField(_('publication date'))
    # other fields

    class Meta:
        abstract = True

class Book(Publication):
    # ...

class Magazine(Publication):
    # ...

或者(b)一个带有publication_type字段的模型,可以选择“book”和“magazine”。在

或者(c)使用方法published_after将自定义管理器和查询集添加到两个模型中,该方法知道要将哪个属性用于筛选器。在

我建议选择(b)如果书籍和杂志没有太大区别,(a)如果有。在

相关问题 更多 >