Since you're trying to persist the form submission across sessions, you can persist this information in the database or may also consider storing this info in redis. Here I'm assuming you'll be using the database.
You may keep track of this information in the existing Employee model, or if you know that you maybe have to extend this to other forms, you can create a separate model.
Here I'm using a separate a model that keep tracks of this information (if a row exists, it indicates that the form is already filled)
class EmployeeFormSubmission(models.Model):
employee = models.OneToOneField(User, on_delete=models.CASCADE)
If you want to keep track of multiple forms, you can add another fields like form_name
.
Finally, you can check if the current_employee already has submitted the form like this, and handle what you really want to do, depending on your business logic (I've indicated that in the code comments)
if EmployeeFormSubmission.objects.filter(employee=request.user).exists():
# You can display an error here, or redirect in the view for
# editing the information.
else:
# This is a new form for the user, so they can fill this in.
form = EmployeeForm()
# return the form/error from the view.