2013-04-08 3 views
2

양식에 표시되지 않는 필드 값을 가져올 수 있습니까? 세션에서 ref_id를 전달하고 싶습니다. 이 내 모델 :장고를 사용하여 필드 값 받기

def _createId(): 
     """ 
     """ 
     return hexlify(os.urandom(4)) 

class jobpost(models.Model): 
    item_types = (
     ('Full Time','Full Time'), 
     ('Part Time','Part Time'), 
     ('Contract','Contract'), 
    ) 
    posttype= (
     ('Job','Job'), 
     ('Classified','Classified'), 
     ('Project/Task','Project/Task'), 
     ('Internship','Internship'), 
    ) 
    #user = models.ForeignKey(User) 
    job_id =    models.AutoField(primary_key=True) 
    country= models.ForeignKey(Country,to_field = 'country_name', null=True) 
    #user = models.ForeignKey(User, editable = False) 
    post_type =  models.CharField(max_length=255,null=True, choices=posttype,default='Job') 
    job_type =  models.CharField(max_length=255,null=True, choices=item_types,default='Full Time') 
    job_location = models.CharField(max_length=255,null=True) 
    job_title =    models.CharField(max_length=255,null=True) 
    job_description =  models.TextField(null=True) 
    start_date = models.DateField(null=True, help_text="mm/dd/yyyy") 
    end_date =  models.DateField(null=True, help_text="mm/dd/yyyy") 
    how_to_apply = models.CharField(max_length=255,null=True) 
    ref_id = models.CharField(max_length=32, default=_createId) 

    def __unicode__(self): 
     return unicode(self.country) 
     return self.post_type 
     return self.job_location 
     return self.job_type 
     return self.job_title 
     return self.job_description 
     return self.start_date 
     return self.end_date 
     return self.how_to_apply 
     return self.ref_id 

내가 내 양식에 표시하고 있지 않다 의미하고 난 다음 형식으로 세션에서이 값을 전달하려는 .. 사람이 말해 줄 수 내가 어떻게 할 수 있습니까? 어떻게 양식의 기본 키를 다음 형식으로 전달할 수 있습니까?

답변

1

forms.py

class JobPostForm(forms.ModelForm): 
    def __init__(self, *args, **kwargs): 
     super(JobPostForm, self).__init__(*args, **kwargs) 
     self.fields['ref_id'].widget = forms.HiddenInput() 

    class Meta: 
     model = jobpost 

views.py

def your_view(request): 
    if request.method == 'POST': 
     form = JobPostForm(request.POST) 
     if form.is_valid(): 
      request.session['ref_id'] = form.cleaned_data.get('ref_id') 
      pk = form.save() 
      request.session['pk'] = pk.id 
    else: 
     form = JobPostForm() 
    return render(request, page.html,{'form': form}) 
+0

이 –

+0

에게'form.cleaned_data.get ('REF_ID')를 '주고, 미안 내가'잊었다 세션 변수 변수 – catherine

+0

대답은 업데이트 나 KeyError를 – catherine