Я создаю приложение для благотворительного клуба, в котором много разных пользователей, каждый из которых принадлежит одному клубу. Я хочу автоматически увеличивать поле «total_members» класса «Club_Chapter» каждый раз, когда пользователь регистрирует свою учетную запись для определенной школы (отсюда и внешний ключ пользователя «глава»).
models.py
class Club_Chapter(models.Model):
club_id = models.IntegerField(primary_key=True)
school_name = models.CharField(max_length=30)
state = models.CharField(max_length=4)
total_members = models.IntegerField(null = False, default = 0)
def __str__(self):
return self.school_name
# User Model
class User(AbstractUser):
username = None
email = models.EmailField(_('email address'), unique=True)
USERNAME_FIELD = 'email'
chapter = models.ForeignKey('Club_Chapter',on_delete=models.PROTECT)
ranking = models.CharField(default='member', max_length=20)
REQUIRED_FIELDS = []
objects = UserManager()
forms.py
class SignUpForm(UserCreationForm):
first_name = forms.CharField(max_length=30, required=True)
last_name = forms.CharField(max_length=30, required=True)
email = forms.EmailField(max_length=254, required=True)
chapter = models.ForeignKey('Club_Chapter',on_delete=models.PROTECT)
password2 = None
# below is my failed attempt to solve this problem
Club_Chapter.objects.update(total_members=F('total_members') + 1)
class Meta:
model = User
fields = ('first_name', 'last_name',
'chapter','email', 'password1',)
Я знаю, что это швы, как тривиальная проблема, но я искал везде без удачи. Любой вклад будет высоко оценен для решения этой проблемы, очень поможет с другими аспектами этого проекта.