簡體   English   中英

Django model 計算字段以獲取用系統日期減去給定日期的天數

[英]Django model calculated field to get number of days subtracting given date with system date

我試圖動態生成一個列值,即計算“從請求請求的日期開始請求的天數”,我試圖從系統日期中減去請求的日期以直接在 django Z20F35E630DAF44DBFA4C3F630DAF44DBFA4C3F630DAF44DBFA4C3F68F5399D8CZ 但沒有得到 Z78E6221F6393D135DZF6393D135DZF639814CEDB3 下django model 代碼任何幫助請

from django.db import models
from datetime import datetime

Demand_Id = models.CharField(max_length=10, default='BLANK')`enter code here`
Requested_Date = models.DateField(default=datetime.now)
Days_Open = models.IntegerField(default=0)

@property
def get_Days(self):
    date_format = "%Y-%m-%d"
    sysdate = datetime.strptime(str(datetime.now().date()), date_format)
    odays = (sysdate - datetime.strptime((self.Requested_Date), date_format)).days
    return self.odays

@property   
def save(self, *args, **kwargs):
    self.Days_Open = self.get_Days()
    super(Demand_Master, self).save(*args, **kwargs)

def __str__(self):
    return self.Demand_Id

簡單地,

from django.utils import timezone


class Foo(models.Model):
    # rest of your code

    @property
    def get_Days(self):
        return (timezone.now() - self.Requested_Date).days

如果Days_Open直接派生自另一個字段,則不應將其設為字段,因為這會引入數據重復

from django.utils.timezone import now

class MyModel(models.Model):
    demand_id = models.CharField(max_length=10, default='BLANK')
    requested_date = models.DateField(default=datetime.now)

    @property
    def days_open(self):
        return (now().date()-self.request_date).days

    def __str__(self):
        return self.demand_id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM