2012-03-01 3 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이 donot는 뷰에서 들여 쓰기 및 기타 물건에 대한 걱정

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}) 

, 이것은 내가 뭘하려고 오전 단지 모델입니다, 익명 사용자가 양식을 제출할 때 볼 수 있듯이 익명 사용자가 양식을 제출할 때 먼저 등록해야하며 그의 데이터를 모델에 추가해야하므로 양식을 제출할 수 있습니다.

어떻게 구현할 수 있습니까?

답변

1

사용자가 인증되지 않은 경우 양식 데이터를 세션에 저장하십시오.

그런 다음 사용자를 시스템에 로그인하십시오.

그런 다음 세션에서 양식 데이터를 가져 와서 인증 된 사용자 정보를 사용하여 정보를 저장하십시오.

0
  1. 사용자 FK는 필요하지 않습니다. 모델을 저장하십시오.
  2. request.user.is_authenticated()에 생성 된 ID의 쿠키가있는 경우. 로그인 페이지에서 리디렉션하십시오.
  3. 각 사용자에 대해 모델 ID가있는 쿠키가 있는지 확인하고 사용자를 모델에 첨부하고 저장하십시오.
+0

제발 당신이 튜토리얼/게시물/여기에 그들을 게시하는 방법을 설명하는 링크가 있다면, 나는 그것을 이해할 수 없으므로 더 자세히 설명하십시오. 감사합니다 – user993563

+0

@ user993563 정확하게 여기에 어려워 보이는 게 뭐죠? – DrTyrsa

+0

1. 생성 된 모델의 ID를 가진 쿠키를 가져 오십시오. 2. 사용자 FK를 reqd하지 않습니까 ?? 그것은 사용자 모델이 외래 키가되어서는 안된다는 것을 의미합니까 ?? 나는 일종의 중급 장고와 함께, 그러므로 제발 정교한 감사합니다. – user993563