Я хочу установить значение нового поля в зависимости от другого поля. Чтобы рассмотреть, я хочу удалить like_count
после установки значения like_status
. Первая попытка:
my model.py:
class Post(Model):
title = models.CharField( max_length=100)
like_count = models.IntegerField(default=0)
, и теперь я хочу добавить новое поле в модель Post
, которая показала мне, пост уже понравилсяили нет:
class Post(Model):
title = models.CharField( max_length=100)
like_count = models.IntegerField(default=0)
like_status = models.BooleanField(default=False if str(F('like_count')) == 0 else True)
после запуска миграции все значения like_status
равны True
, в то время как существует какой-то объект Post с like_count=0
вторая попытка: добавление like_status
с False
значением по умолчанию:
class Post(Model):
title = models.CharField( max_length=100)
like_count = models.IntegerField(default=0)
like_status = models.BooleanField(default=False)
, затем попытка обновления like_status
поле:
Post.objects.all().update(like_status=True if F('like_count')>0 else False)
ошибка:
'>' not supported between instances of 'F' and 'int'
и пытаюсь:
Post.objects.all().update(like_status=True if int(F('like_count'))>0 else False)
ошибка:
int() argument must be a string, a bytes-like object or a number, not 'F'
Я могу достичь своей цели, запустив скрипт, но я хочу знать способ выполнения этого процесса без scripting.thank. ты за свое время