【问题标题】:Accessing request.GET or request.POST in Django Forms在 Django 表单中访问 request.GET 或 request.POST
【发布时间】:2013-12-21 22:08:09
【问题描述】:

在 django 视图中,我们经常调用表单并使用 request.GET 和/或 request.POST 值 MyForm(request.GET) or MyForm(request.POST) 对其进行初始化。如何在表单类中访问它?

class MyForm(forms.ModelForm):
  class Meta:
  #... more code

  def __init__(self, *args, **kwargs):
    super(MyForm, self).__init__(*args, **kwargs)
    #... how to access request.POST or request.GET here?

【问题讨论】:

    标签: django django-forms


    【解决方案1】:

    在你的views.py中:

    def your_view(request):
        form = MyForm(request)  # or MyForm(request, request.POST, request.FILES)
        # your view code
    

    在您的 forms.py 中:

    class MyForm(forms.ModelForm):
        ...
    
        def __init__(self, request, *args, **kwargs):
            post = request.POST
            super(MyForm, self).__init__(*args, **kwargs)
    

    ** 更新**

    最初误解了作者的意图。要仅访问 request.GET 或 request.POST 参数给出的数据,您可以在 __init__ 方法上调用 super 后通过 self.data 访问它们。

    【讨论】:

    • 这是一个可能的答案。但是,我们需要添加额外的参数吗?就其本质而言,即使没有添加额外的参数,django 也能接收到请求数据。我想知道他们将请求值保存在哪里。
    • 你可以试试self.data
    猜你喜欢
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    • 2021-03-03
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    相关资源
    最近更新 更多