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

私は自分のフォームにそれを表示していないことを意味し、次のフォームのセッションでこの値を渡したい..どうすればこれを行うことができるか教えてもらえますか? 次のフォームでフォームの主キーを渡すにはどうすればよいですか?

4

1 に答える 1

1

フォーム.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

ビュー.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})
于 2013-04-08T12:27:21.420 に答える