как проверить, отправил ли пользователь после входа в систему форму один, и если да еще раз, если он вошел в систему, он должен перенаправить в форму 2, а не один раз в django - PullRequest
0 голосов
/ 21 апреля 2020

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

views.py 

def create(request):
    if request.method == 'POST':
        post = AccountProfile()
        post.user = request.user
        post.name = request.POST['name']
        post.email = request.POST['email']
        post.mobile = request.POST['mobile']
        post.date = request.POST['date']
        post.sex = request.POST['sex']
        post.save()
        return render (request,'posts/dashboard-post-a-job.html')

Это представления, куда пользователь перенаправляется после входа в систему и заполнения формы.

1 Ответ

1 голос
/ 21 апреля 2020

Вы должны хранить прогресс в базе данных. Если вам нужно проверить только одну форму, добавьте новый столбец в AccountProfile модель.

models.py

class AccountProfile(models.Model):
    ...

    form1_submitted = models.BooleanField()

Затем, как только форма отправлено, вы можете обновить это поле.

def create(request):
    if request.method == 'POST':
        post = AccountProfile()
        post.user = request.user
        post.name = request.POST['name']
        post.email = request.POST['email']
        post.mobile = request.POST['mobile']
        post.date = request.POST['date']
        post.sex = request.POST['sex']
        post.form1_submitted = True  # save the progress
        post.save()
        return render (request,'posts/dashboard-post-a-job.html')

Теперь страница прогресса может проверить значение этого поля и соответствующим образом отобразить форму.

...