Python 选择过期日期字段
我已经创建了一个expiredate字段,它是根据registerdate字段自动生成的 我尝试了一个常规的查询,就像我在下面提到的任何字段中使用的一样 这就是模型:Python 选择过期日期字段,python,django,Python,Django,我已经创建了一个expiredate字段,它是根据registerdate字段自动生成的 我尝试了一个常规的查询,就像我在下面提到的任何字段中使用的一样 这就是模型: class UserProfile(models.Model): course = models.ForeignKey(Category, on_delete=models.DO_NOTHING) phonenumber = models.CharField(max_length=50) registerd
class UserProfile(models.Model):
course = models.ForeignKey(Category, on_delete=models.DO_NOTHING)
phonenumber = models.CharField(max_length=50)
registerdate = models.DateTimeField()
expiredate = timezone.now().date() + timedelta(days= 70)
user = models.OneToOneField(User, on_delete = models.CASCADE)
def __str__(self):
return "{}" .format(self.user)
这就是我试图使用的查询:
expire = UserProfile.objects.values('expiredate')
我只想选择expiredate并在my views.py函数中使用它,但查询生成错误:
'Cannot resolve keyword 'expiredate' into field. Choices are: course, course_id, id, phonenumber, registerdate, user, user_id'
expiredate可以是日期字段
python manage.py makemigrations
python manage.py通过@katoozi迁移解决方案将强制默认值保持不变,直到应用程序重新启动 使用callable获取正确的值:
def get_expiredate():
return timezone.now().date() + timedelta(days= 70)
class UserProfile(models.Model):
expiredate = models.DateField(default=get_expiredate)
看一看我忘了提到管理网站上没有显示过期日期。如果这与我无法使用简单查询从模型中获取字段值有关,请在注释中解释!expiratedate不是字段,只是类属性。你怎么这么肯定这是一个领域。简单地说,我会解释,你能在django admin中看到它吗?没有权利。所以,这不是一个领域。告诉我们这个领域的目的。我猜你用错误的方式创建了你的模型。我想使用它,因为将要注册的用户的帐户在70天内只会处于活动状态。这个模型扩展了django用户模型,因为我想添加更多关于registerd用户的详细信息,而不仅仅是django提供的详细信息。为什么不使用DateTimeField??如果用户在6月1日晚上11:00注册,则该帐户应在8月9日晚上11:00正好到期70天,而不是在上午12:00的9点,用户将失去11小时的使用时间@PárísŹarka——你也考虑一下。
def get_expiredate():
return timezone.now().date() + timedelta(days= 70)
class UserProfile(models.Model):
expiredate = models.DateField(default=get_expiredate)