Как мы будем считать пользователей?
class User(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
mobile_number = models.IntegerField()
cnic = models.CharField(max_length=13)
blood_group = models.CharField(max_length=10)
last_donation = models.DateTimeField(auto_now_add=True)
class Donation(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name= 'donation')
donation_count = models.IntegerField(default= 1)
class UserForm(ModelForm):
class Meta:
model = User
fields = "__all__"
def clean_cnic(self):
cnic = self.cleaned_data['cnic']
obj = User.objects.filter(cnic=cnic).exists()
if not obj:
return cnic
try:
u_obj = User.objects.get(cnic=cnic)
except User.DoesNotExist:
raise ValidationError("User Does not exist")
if u_obj:
previous_date = u_obj.last_donation
current_date = datetime.now().astimezone()
final = current_date - previous_date
print(final)
if final < timedelta(days= 90 ):
raise ValidationError("U have to wait 90 days to complete")
return cnic
def clean_blood_group(self):
cnic = self.cleaned_data.get("cnic")
blood_group = self.cleaned_data['blood_group']
if not User.objects.filter(cnic = cnic).exists():
return blood_group
obj = User.objects.get(cnic = cnic)
if obj.blood_group == blood_group:
return blood_group
raise ValidationError("Blood group does not match")
Первый раз пользователь придет и сдаст кровь Хорошо, но теперь условие таково, что существующий пользователь может сдать кровь через 3 месяца. Теперь я должен проверить, какой пользователь сдавал кровь сколько раз Как я могу подсчитать пользователей Я искал слишком много, но не нашел ничего связанного с этим Может кто-нибудь помочь мне У меня есть две модели. Заранее спасибо