Отправка формы только один раз в Django

Я пытаюсь сделать так, чтобы пользователь отправлял форму только один раз. У меня есть страница /dashboard, которая отображается после отправки /petform. Но я хочу, чтобы пользователь отправлял форму только один раз после входа в систему, а в остальное время он должен перенаправляться на /dashboard напрямую (или показывать сообщение, что "форма уже отправлена").

models.py

class PetFormData(models.Model):
    abstract = True
    name = models.CharField(max_length=100)
    age = models.IntegerField()
    breed = models.CharField(max_length=100)
    amount_spent = models.CharField(max_length=100, choices=AMOUNT_CHOICES)
    pincode = models.CharField(max_length=15)
    services_required = models.CharField(max_length=100, choices=SERVICE_CHOICES)
    auth_user_email = models.ForeignKey(User, on_delete=models.CASCADE)
    form_submitted = models.BooleanField(default=False)

views.py

@login_required
def showformdata(request):
    form = PetForm(request.POST)
    if request.method == 'POST':
        if not PetFormData.form_submitted and user == PetFormData.auth_user_email:
            PetFormData.form_submitted = True
            print(PetFormData.form_submitted)
            if form.is_valid():
                user = request.user
                nm = form.cleaned_data['name']
                age = form.cleaned_data['age']
                breed = form.cleaned_data['breed']
                am_sp = form.cleaned_data['amount_spent']
                pin = form.cleaned_data['pincode']
                ser_req = ','.join(form.cleaned_data['services_required'])
                model_pet_form = PetFormData(name=nm, age=age, breed=breed, amount_spent=am_sp, pincode=pin,
                                             services_required=ser_req, auth_user_email=user)
                model_pet_form.save()
                print(session_data)
                return redirect('/dashboard')
        else:
            print(PetFormData.form_submitted)
            return HttpResponse('Form already submitted', content_type="text/plain")
    else:
        form = PetForm()
    return render(request, 'petform.html', {'form': form})

Успешная отправка формы один раз предположительно сохраняет что-то в базе данных. Последующее посещение этой страницы может опросить базу данных, обнаружить, что это уже было сделано, и отобразить соответствующую следующую страницу.

Что-то вроде этого (я не совсем понимаю вашу проблему)

if PetFormData.objects.filter( auth_user_email = request.user).exists() :
    return redirect('/dashboard')

# OK, user hasn't submitted yet.
Вернуться на верх