Пользователь, соответствующий запросу, не существует. Я хочу добавить данные, если пользователь пришел впервые?

Вообще-то я работаю над системой сдачи крови. Я проверяю, что если пользователь уже существует, то я проверяю, что он или она завершил 90 дней или нет, если он или она завершил, то его или ее запрос будет принят. если не завершил, то я покажу сообщение U have to Complete 90 days. Я добавляю данные через администратора и проверяю на основе CNIC, что он или она завершили 90 дней или нет, и это работает, но теперь главная проблема в том, что если добавить новые данные с переднего края, он говорит, что пользователь, соответствующий запросу, не существует. Теперь мне нужно добавить другую часть, но я не знаю как? Пожалуйста, расскажите мне об этом, я застрял на этом уже 4 дня.

 #forms.py 
    
    from django.core.exceptions import ValidationError
    from django.forms import ModelForm
    from django.shortcuts import redirect
    from .models import User
    from datetime import  datetime,timedelta
    
    
    class UserForm(ModelForm):
        class Meta:
            model = User
            fields = "__all__"
        
        def clean_cnic(self):
            cnic = self.cleaned_data['cnic']
            print("This is a cnic",cnic)
            existuser = User.objects.get(cnic = cnic)
            if existuser:
                previous_date = existuser.last_donation
                current_date = datetime.now().astimezone()
                print(previous_date,"-----_---",current_date)
                final = current_date - previous_date
                print("The final is -> ",final)
                if final < timedelta(days= 90):
                    raise ValidationError("U have to wait 90 days to complete")
                return final



 #views.py
    
    from django.shortcuts import render
    from .models import *
    from .forms import UserForm
    
    
    def home(request):
        return render(request, 'home.html')
        
    def donor(request):
        if request.method == "POST":
            userform = UserForm(request.POST)
            if userform.is_valid():
                userform.save()
        else:
            userform = UserForm()
        return render(request, 'donor.html',{'userform':userform})

Просто, вам нужно убедиться, что пользователь существует.

def clean_cnic(self):
    cnic = self.cleaned_data['cnic']
    try:
        existuser = User.objects.get(cnic=cnic)
    except User.DoesNotExist:  
        raise ValidationError("User not found!")

    previous_date = existuser.last_donation
    current_date = datetime.now().astimezone()
    final = current_date - previous_date
    if final < timedelta(days= 90):
        raise ValidationError("U have to wait 90 days to complete")
    return final
Вернуться на верх