Сохранение данных формы django перед регистрацией пользователя - PullRequest
2 голосов
/ 01 марта 2012

Я использую формы модели django, форма может быть заполнена даже пользователями, которые не зарегистрировались, но для отправки требуется регистрация пользователя. Вот мои модели:

class Study(model.Model):
    marksobtained = models.CharField(max_length=5)
    highestmarks = models.CharField(max_length=5)
    teacher = models.CharField(max_length=300)

class StudyForm():
   some customisation stuff. 

, а затем views.py

form = StudiesForm(request.POST or None,
                       instance=id and Studies.objects.get(id=id))
if form.is_valid():
      form.save()
      return render(request, 'calculate.html', {'detail': ret_dict, 'amt': amt})
      else:
          return render(request, 'forms.html', {'form':form})
    else:
          return render(request, 'forms.html', {'form':form})

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

Как это можно реализовать?

Ответы [ 2 ]

1 голос
/ 01 марта 2012

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

Затем зарегистрируйте пользователя в системе.

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

0 голосов
/ 01 марта 2012
  1. Сделать пользователя FK не требуется.Сохранить модель.
  2. Если request.user.is_authenticated() получить ему cookie с идентификатором созданной модели.Перенаправьте его на страницу входа.
  3. Для каждого пользователя проверьте, есть ли cookie с идентификатором модели, присоедините пользователя к модели, сохраните.
...