2011-12-27 1011 views
0

更具体地说,我需要访问表单对象的init方法中的请求对象。这里是我的代码:如何访问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 

基本上,我要初始化这种形式:self.initial = self.request.session['previous_url']

任何想法?谢谢!

回答

1

表格和小工具通过设计与请求信息分离。简单的方式做你想要的是实例化一个表单的观点是这样的:

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

但是,它可能是更apropriate创建接受request作为一个额外的参数一自定义窗体(给予形式类访问它):

form = SomeForm(request=request) 
+0

谢谢你!得到它的工作:) – kyphos 2011-12-28 00:21:18

相关问题