我正在尝试运行一个函数来比较今天的月份和用户输入的月份。日期将由用户输入为'YYYY-MM-DD'。这是我目前所拥有的:
class Sneaker(models.Model):
name = models.CharField(max_length=100)
brand = models.CharField(max_length=100)
description = models.TextField(max_length=250)
date = models.DateField('release date')
price = models.IntegerField()
def worn_for_the_month(self):
return self.worn_set.filter(date=date.today().month).count == date.month
但得到以下错误:
格式:参数必须为字符串
所以我试着用下面的函数代替string:
def worn_for_the_month(self):
return self.worn_set.filter(date=str(date.month)) == str(date.month)
我得到了这个错误:
%(value)s”值的日期格式无效。它必须为YYYY-MM-DD格式。
我不确定我现在是否使用了正确的函数类型。我只想将我们所在的月份与用户输入的月份进行比较。
2条答案
按热度按时间41zrol4v1#
如果你真的只想过滤月份值,那么你可以这样做(
__month
):但是,我想您并不真的想这样做,因为您将计算2022年7月、2021年7月、2020年7月等时间佩戴的手表......相反,您可以使用datetime库中的
replace()
或timedelta
:mwg9r5ms2#
首先,我认为你必须缩进类sleaker后面的所有项,才能把它们放到类里面。然后你忘了导入模型。'from django.db import models'就可以了。