Я пытаюсь создать полностью анонимный опрос, в котором участник опроса входит на целевой сайт (индекс. html), щелкает ссылку и направляется в представление опроса. На этой странице опроса (pre_test. html) я хочу назначить новый объект «Участник» с первичным ключом и связать его с моделью опроса через внешний ключ. Поскольку этот опрос не является основной частью моего исследования, я хочу отправить этот объект участника в новое представление, где первичный ключ участника снова используется в качестве внешнего ключа для связи с другой моделью (назовем это задачей).
То, что я пробовал до сих пор в views.py:
def pre_test(request):
if request.method == "POST":
participant = Participants()
participant.save()
participant_pk = participant.pk
form = PreTestQuestionnaireForm(request.POST)
if form.is_valid():
post = form.save(commit=False)
post.save()
post_primary = PreTestQuestionnaire(pk=post.pk)
post_primary.Analyst_id = Participants(pk=participant_pk)
post_primary.save()
request.session['user'] = participant_pk
return HttpResponseRedirect(reverse('main:picture_test'))
else:
form = PreTestQuestionnaireForm()
return render(request, 'study/pre_test.html', {'form': form})
def picture_test(request):
obj = Participants(Unique_ID=request.session.get('user')) # Unique_ID is the pk I've set for Participants
, но при вызове print(obj)
все, что я получаю, это объект «Участники» (None). Что мне не хватает при использовании сеанса? Должен ли я вообще не использовать сеансы таким образом или мне следует создавать реальных пользователей в другой таблице, не сообщая им пароли и другие данные? Сохранение анонимности пользователей очень важно, и я хочу по возможности избегать файлов cookie, хотя я могу написать код для удаления файлов cookie после каждого сеанса.