如何访问表单类中的会话变量

Mar*_*esh 3 django django-forms

您好,我有一个会话变量城市,如何在表单类中访问它。

像这样的东西

类 LonginForm(forms.Form):

current_city=request.city
Run Code Online (Sandbox Code Playgroud)

Wil*_*sem 5

默认情况下, AForm无法访问该request对象,但您可以创建一个构造函数来考虑并处理它。例如:

class LonginForm(forms.Form):

    def __init__(self, *args, request=None, **kwargs):
        super(LonginForm, self).__init__(*args, **kwargs)
        self.request = request  # perhaps you want to set the request in the Form
        if request is not None:
            current_city=request.city
Run Code Online (Sandbox Code Playgroud)

在相关视图中,您需要传递请求对象,例如:

def some_view(request):
    my_form = LonginForm(request=request)
    # ...
    # return Http Response
Run Code Online (Sandbox Code Playgroud)

或者在基于类的视图中:

from django.views.generic.edit import FormView

class LonginView(FormView):
    template_name = 'template.html'
    form_class = LonginForm

    def get_form_kwargs(self, *args, **kwargs):
        kwargs = super(LonginView, self).get_form_kwargs(*args, **kwargs)
        kwargs['request'] = self.request
        return kwargs
Run Code Online (Sandbox Code Playgroud)