python - Django 中 DateTimeField 过滤器的问题

标签 python mysql django django-models

请帮帮我) 我收到错误“[u”'data_date' 值的格式无效。它必须是 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] 格式。"]"并且不知道如何解决它。

我的模型.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)

我的观点.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 | 28 1 |管理员 |你好| 2014-05-01 00:41:00 | 2 | 2014-06-01 00:00:00

最佳答案

您似乎忽略了要转换为日期时间的输入字符串中的部分。

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'  
)  

关于python - Django 中 DateTimeField 过滤器的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23400544/

相关文章:

python - 在 python 中比较数据框中的两行时查找公共(public)列

python - 用python读取 float

python - 百分比列表切片

php - MySQL数据库表关系

php - Codeigniter,插入 ID

python - 以 uuid 作为参数的 Django CBV

python - 在函数上定义 __getattr__ 和 __getitem__ 无效

mysql - SQL双数据库安全

mysql - 部署像 Instagram 这样的网站,需要什么?

django - 让 django url 标签静默失败