2013-04-08 38 views
2

我可以獲取我沒有在表單中顯示的字段的值嗎?我想在會話中傳遞ref_id。 這是我的模型:使用Django獲取字段值

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

它給我KeyError異常 – 2013-04-08 12:35:32

+0

'form.cleaned_data.get( 'REF_ID')' – catherine 2013-04-08 12:37:59

+0

答案更新,對不起,我忘了我米傳遞給會話變量 – catherine 2013-04-08 12:39:07