我想知道一种在基于Django类的视图中内部定义和使用变量的干净方法。该变量并非旨在用于模板中,而是用于视图的内部功能。
直到现在,我使用get_form_kwargs()
方法在表单中传递变量(my_variable
),然后从表单中获取此变量,但我认为还有一种更简洁的方法要做到这一点 !我可以对get_context_data()
做同样的事情,但是我的目标不是用模板中未使用的变量重载上下文。
示例:
我的观点
class MyView(generic.FormView):
template_name = 'mytemplate.html'
form_class = MyForm
def get_form_kwargs(self):
kwargs = super(MyView, self).get_form_kwargs()
kwargs['my_variable'] = 'foo'
return kwargs
def form_valid(self, form):
my_variable = form.my_variable
# my code here, using my_variable
# [...]
和我的表格:
class MyForm(forms.Form):
def __init__(self, *args, **kwargs):
self.my_variable = kwargs.pop('my_variable', None)
super(MyForm, self).__init__(*args, **kwargs)
在我的示例中,我需要用于表单的变量,但并非总是出于表单目的。我希望能够在所有视图中使用变量,例如self.my_variable。
谢谢!