Выберите просроченное поле - PullRequest
0 голосов
/ 30 мая 2019

Я создал поле 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 ииспользуйте его в моей функции views.py, но запрос выдаст ошибку:

'Cannot resolve keyword 'expiredate' into field. Choices are: course, course_id, id, phonenumber, registerdate, user, user_id'

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Решение с помощью @katoozi заставляет значение по умолчанию оставаться неизменным до перезапуска приложения.

Используйте callable для получения правильного значения:

def get_expiredate():
    return timezone.now().date() + timedelta(days= 70)

class UserProfile(models.Model):
    expiredate = models.DateField(default=get_expiredate)

Взгляните на Как установить значение по умолчанию поля модели Django для вызова / вызова функции (например, даты относительно времени создания объекта модели)

0 голосов
/ 30 мая 2019

expiredate может быть DateField.

class UserProfile(models.Model):
    expiredate = models.DateField(default=timezone.now().date() + timedelta(days= 70))

python manage.py makemigrations

python manage.py migrate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...