Нахождение наибольшего значения целочисленного поля - Django

У меня есть сайт на Django и одна из моих моделей имеет целочисленное поле. Кто-нибудь знает способ извлечения наибольшего значения, находящегося в этом поле, в представление? Спасибо!

Я наконец-то разобрался с этим примерно через неделю. Он близок к комбинации SELECT MAX и агрегации

models.py:

class Sheet_Building(models.Model):
    user = models.ForeignKey(User, default=True, related_name="Building", on_delete=models.PROTECT)
    count_building = models.IntegerField(blank=True, null=True)
    date = models.DateField(blank=True, null=True, verbose_name='Inspection Date')
    time = models.TimeField(blank=True, null=True, verbose_name='Inspection Time')
    inspection_type = models.CharField(max_length=16, choices=INSPECTION_TYPE_BI, blank=True, null=True, verbose_name='Inspection Type')
    flname = models.CharField(max_length=25, blank=True, null=True, verbose_name='Inspector')
    report_date = models.DateField(blank=True, null=True, verbose_name='Report Date')
    department = models.CharField(max_length=29, choices=DEPARTMENT_BI, blank=True, null=True, verbose_name='Department')
    responsible_name = models.CharField(max_length=25, blank=True, null=True, verbose_name='Responsible Person')
    building_address = models.CharField(max_length=52, choices=BUILDING_ADDRESS, blank=True, null=True, verbose_name='Building and Address')
    floor = models.CharField(max_length=8, choices=FLOOR_LEVEL_BI, blank=True, null=True, verbose_name='Floor / Level')
    room = models.CharField(max_length=35, blank=True, null=True, verbose_name='Area / Room')
    location = models.CharField(max_length=10, choices=LOCATION_BI, blank=True, null=True, verbose_name='Location')
    priority = models.IntegerField(blank=True, null=True, verbose_name='Priority')
    hazard_level = models.CharField(max_length=20, choices=HAZARD_LEVEL_BI, blank=True, null=True, verbose_name='Hazard Level')
    concern = models.CharField(max_length=31, choices=CONCERN_BI, blank=True, null=True, verbose_name='Concern')
    codes = models.CharField(max_length=51, choices=CODES_BI, blank=True, null=True, verbose_name='Element and Code')
    correction = models.TextField(max_length=160, blank=True, null=True, verbose_name='Corrective Action')
    image = models.ImageField(blank=True, null=True, verbose_name='Image', upload_to='gallery')
    notes = models.TextField(max_length=500, blank=True, null=True, verbose_name="Inspector's note")

    class Meta:
        ordering = ['-pk']

    def __str__(self):
        return self.flname or 'None'

    def get_absolute_url(self):
        return reverse('list_building')

view.py:

def adddata_building(response):
    if response.method == 'POST':
        form = SheetForm_Building(response.POST, response.FILES)
        if form.is_valid():
            instance = form.save(commit=False)
            instance.user = response.user  #User
            if Sheet_Building.objects.filter(user=response.user).values_list('count_building'):
                instance.count_building = Sheet_Building.objects.filter(user=response.user).aggregate(count_building=Max('count_building'))['count_building'] + 1 #Count
            else:
                instance.count_building = 1
            instance.save()
            response.user.Building.add(instance)
            return redirect('list_building')
    else:
        form = SheetForm_Building()

    return render(response, 'sheets/add_data/add_data_building.html', {'form': form})

HTML:

{% for post in object_list %}
    {{ post.count_building }}
{% enfor %}
Вернуться на верх