2011-12-27 1829 views
0

더 구체적으로 말하면, 양식 객체의 init 메소드 내부의 요청 객체에 액세스해야합니다. self.initial = self.request.session['previous_url']django forms.py에서 요청 개체에 어떻게 액세스합니까?

어떤 아이디어 :

class TagNamesField(forms.CharField): 
    def __init__(self, user=None, *args, **kwargs): 

     super (TagNamesField,self).__init__(*args,**kwargs) 

     self.required = True 
     self.widget = forms.TextInput(attrs={'size' : 50, 'autocomplete' : 'off'}) 
     self.max_length = 255 
     self.label = _('tags') 
     #self.help_text = _('please use space to separate tags (this enables autocomplete feature)') 
     self.help_text = _('Tags are short keywords, with no spaces within. At least %(min)s and up to %(max)s tags can be used.') % { 
      'min': settings.FORM_MIN_NUMBER_OF_TAGS, 'max': settings.FORM_MAX_NUMBER_OF_TAGS 
     } 
     self.initial = self.request.session['previous_url'] 
     self.user = user 

는 기본적으로,이 양식을 초기화 할 : 여기 내 코드는? 감사!

답변

1

양식 및 위젯은으로 요청 정보 집합 에서 분리됩니다. 당신이 원하는 것을 할 수있는 간단한 방법은보기에 인스턴스화 형태이 방법이다 : 여분의 인수로 request을 받아들이는 사용자 지정 양식을 만드는 것이 더 apropriate 수 있습니다, 그러나

form = SomeForm(initial={'tags': self.request.session['whatever']}) 

(제공 형태 클래스 액세스 권한) :

form = SomeForm(request=request) 
+0

감사합니다 사람! 알았어 :) – kyphos

관련 문제