2012-03-01 4 views
2

Я использую формы модели django, форма может быть заполнена даже теми, кто еще не подписался, но для представления требуется, чтобы пользователь был зарегистрирован. Вот мои модели:Сохранение данных модели 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}) 

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

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

ответ

1

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

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

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

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

Пожалуйста, уточните больше, я не мог понять это, если у вас есть учебники/сообщения/ссылки, объясняющие шаги, пожалуйста, разместите их здесь. Thanks – user993563

+0

@ user993563 Что именно здесь сложно? – DrTyrsa

+0

1. Получите ему cookie с идентификатором созданной модели. 2. сделать пользователя FK не reqd ?? означает ли это, что модель пользователя не должна быть чужой? Я являюсь промежуточным с django, поэтому, пожалуйста, продумайте спасибо. – user993563

Смежные вопросы