简体   繁体   English

在 Django 的一个地方从多个模型中获取 N 个最近的对象

[英]Get N recent objects from multiple models at one place in Django

I'm working on a project using Python(3.7) and Django(3) in Which I have created 4 models, for example, A , B , C , and D .我正在使用 Python(3.7) 和 Django(3) 开发一个项目,其中我创建了 4 个模型,例如ABCD All of these models are storing any kind of report.所有这些模型都存储任何类型的报告。 Now on the home page, I need to display 10 recent reports from all of these models.现在在主页上,我需要显示所有这些模型的 10 个最近的报告。

how Can I achieve that?我怎样才能做到这一点?

These models don't have any foreign Key to each other.这些模型彼此之间没有任何外键。

From models.py :models.py

class DistributionReport(models.Model):
    RequestId = models.CharField(max_length=256, blank=False, default=0)
    Currency = models.CharField(max_length=3, blank=False)
    Denomination = models.IntegerField(blank=False, default=0)decimal_places=2)
    date = models.DateField(default=datetime.date.today)

    class Meta:
        verbose_name = 'Distribution Report'

    def __str__(self):
        return self.RequestId


class ExpenditureReport(models.Model):
    RequestId = models.CharField(max_length=256, blank=False, default=0)
    StaffExpenditure = models.DecimalField(max_digits=12, decimal_places=2)
    Month = models.IntegerField(blank=False, default=0)
    Quarter = models.IntegerField(blank=False, default=0)
    Year = models.IntegerField(blank=False, default=0)

    class Meta:
        verbose_name = 'Expenditure Report'

    def __str__(self):
        return self.RequestId


class StorageReport(models.Model):
    RequestId = models.CharField(max_length=256, blank=False, default=0)
    Currency = models.CharField(max_length=5, blank=False)
    Denomination = models.IntegerField(blank=False, default=0)
    date = models.DateField(default=datetime.date.today)

    class Meta:
        verbose_name = 'Processing Report'

    def __str__(self):
        return self.RequestId


class AssetsReport(models.Model):
    RequestId = models.CharField(max_length=256, blank=False, default=0)
    AssetClassificationId = models.IntegerField(blank=False, default=0)
    VaultCapacity = models.DecimalField(max_digits=10, decimal_places=2)
    Year = models.IntegerField(blank=False, default=0)
    HalfOftheYear = models.IntegerField(blank=False, default=0)

    class Meta:
        verbose_name = 'Assets Report'

    def __str__(self):
        return self.RequestId

Something like就像是

objects = Model.objects.filter(<some query>)[:10]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM