Django中DateTimeField过滤器的问题

2 投票
1 回答
3881 浏览
提问于 2025-04-18 04:57

请帮帮我)

我遇到了一个错误:“['data_date' 的值格式不正确。它必须是 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] 格式。”我不知道该怎么解决。

这是我的 models.py 文件

class Data(models.Model):
    main = models.ForeignKey(Main)
    user = models.CharField(max_length=200)
    description = models.TextField()
    data_date = models.DateTimeField(['%Y-%m-%d %H:%M'])
    priority = models.CharField(max_length=1)
    end_date = models.DateTimeField(['%Y-%m-%d %H:%M'])
    def __unicode__(self):
         return self.description
    def was_published_recently(self):
        return self.data_date >= timezone.now() - datetime.timedelta(days=1)

这是我的 views.py 文件

def index(request, onsuccess='/', onfail='/login/'):       
    today = date.today()
    data_data=timezone.now()
    formatted_datetime = formats.date_format(data_data, "SHORT_DATETIME_FORMAT")
    problems_filter = Data.objects.filter(main_id=1).filter(data_date__range=['data_date', 'end_date']).order_by('-data_date').order_by('priority')[:101]
#    problems_filter = Data.objects.filter(main_id=1).order_by('-data_date').order_by('priority')[:10]

当我使用命令字符串时,它工作得很好。

示例格式: 28 | 1 | admin | hi | 2014-05-01 00:41:00 | 2 | 2014-06-01 00:00:00

1 个回答

2

看起来你在把输入字符串转换成datetime的时候,忽略了seconds部分。

data_date = models.DateTimeField( ['%Y-%m-%d %H:%M'] )
end_date  = models.DateTimeField( ['%Y-%m-%d %H:%M'] )

+---------------------+-------------------+----------------+
| input_date_string   | its_format        | what_you_tried |
+---------------------+-------------------+----------------+
| 2014-05-01 00:41:00 | %Y-%m-%d %H:%M:%S | %Y-%m-%d %H:%M |
| 2014-06-01 00:00:00 | %Y-%m-%d %H:%M:%S | %Y-%m-%d %H:%M |
+---------------------+-------------------+----------------+

请相应地调整data_dateend_date字段。

data_date = models.DateTimeField( ['%Y-%m-%d %H:%M:%S'] )
end_date  = models.DateTimeField( ['%Y-%m-%d %H:%M:%S'] )

参考: DATETIME_INPUT_FORMATS

默认值:

(  
    '%Y-%m-%d %H:%M:%S',     # '2006-10-25 14:30:59'  
    '%Y-%m-%d %H:%M:%S.%f',  # '2006-10-25 14:30:59.000200'  
    '%Y-%m-%d %H:%M',        # '2006-10-25 14:30'  
    '%Y-%m-%d',              # '2006-10-25'  
    '%m/%d/%Y %H:%M:%S',     # '10/25/2006 14:30:59'  
    '%m/%d/%Y %H:%M:%S.%f',  # '10/25/2006 14:30:59.000200'  
    '%m/%d/%Y %H:%M',        # '10/25/2006 14:30'  
    '%m/%d/%Y',              # '10/25/2006'  
    '%m/%d/%y %H:%M:%S',     # '10/25/06 14:30:59'  
    '%m/%d/%y %H:%M:%S.%f',  # '10/25/06 14:30:59.000200'  
    '%m/%d/%y %H:%M',        # '10/25/06 14:30'  
    '%m/%d/%y',              # '10/25/06'  
)  

撰写回答