Как изменить пользователя на основе его личной ценности с помощью python
В моих моделях есть таблица Referralcode
ReferralActiveUser
class ReferralActiveUser(models.Model):
user = models.ForeignKey(
User, on_delete=models.SET_NULL, null=True, blank=True)
user_active = models.BooleanField(default=False)
referral = models.ForeignKey(
User, related_name='comp_active_user', on_delete=models.SET_NULL, null=True, blank=True)
Я хочу просмотреть эту таблицу и изменить статус пользователя на основе его pv (personal value), но я запутался или не знаю, как это сделать.
Что я хочу, так это предположить, что это пользователи в моей таблице
[
{
"id": 1,
"user": 2,
"user_active": "0",
"referral_by": 1
},
{
"id": 2,
"user": 3,
"user_active": "0",
"referral_by": 2
},
{
"id": 3,
"user": 4,
"user_active": "0",
"referral_by": 2
},
{
"id": 4,
"user": 5,
"user_active": "0",
"referral_by": 2
}
]
здесь "user":1
- первый пользователь, который запустил эту программу, а все остальные пользователи являются дочерними от "user":1
это как древовидная структура и я хочу перебирать пользователей и проверять pv каждого пользователя и изменять его статус следующим образом
referral_users = ReferralActiveUser.objects.all()
min_value=20
for user in referral_users:
if user.pv >= min_value:
user.status = True
user.save()
else:
# Find users referred by this user
inactive_users = referral_users.filter(referral_by=user.user)
for j in inactive_users:
j.referral_by = # want to add parent of this user
j.save()
user.status = False
user.save()
INFO
Для получения более подробной информации посмотрите это изображение. На изображении красный и зеленый цвета представляют статус как True и False соответственно. Если статус пользователя в дереве False, то я должен изменить его направление на активное, пожалуйста, помогите мне. Надеюсь, вы все понимаете мою проблему, пожалуйста, дайте мне знать для любого вида информации.