Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 选择过期日期字段_Python_Django - Fatal编程技术网

Python 选择过期日期字段

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

我已经创建了一个expiredate字段,它是根据registerdate字段自动生成的

我尝试了一个常规的查询,就像我在下面提到的任何字段中使用的一样

这就是模型:

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)