小编fde*_*boo的帖子

在 FormVIew 的 get_intial() 和 get_form_kwargs() 中使用来自 GET 请求的数据

我正在尝试重构我的代码以继承 FormView 而不是 View。我正在使用的视图接收 GET 请求中的值。我检索 get_context_data 方法中的值,并将它们传递给不同的函数,最终得到一组可以在上下文中传递的变量。

简而言之:

为了举例,变量集包括变量FOO和BAR。我需要通过在 kwargs 中传递变量 FOO 来初始化表单,并另外将表单字段的初始值设置为 BAR。我知道我应该使用 get_initial() 和 get_form_kwargs() 方法来执行此操作。我只是在努力解决如何从 get_context_data 方法获取 FOO 和 BAR 。

我尝试将 FOO 和 BAR 添加到上下文字典中:

context = super().get_context_data(**kwargs)
context["FOO"] = foo
context["BAR"] = bar
return context
Run Code Online (Sandbox Code Playgroud)

然后从其他方法调用它:

def get_initial(self):
    """ Get initial value for the form field """

    initial = super(NameOfView, self).get_initial()
    context = self.get_context_data()
    initial_value = context["BAR"]
    initial.update({'name': inital_value})
    return initial
Run Code Online (Sandbox Code Playgroud)

get_form_kwargs 也是如此。但我得到一个递归错误:

调用 Python 对象时超出最大递归深度

任何帮助理解我如何实现这一目标的帮助将不胜感激

更新:我的实际代码有点像这样: *

class ConfirmTripView(FormView):
    """
    Provides the …
Run Code Online (Sandbox Code Playgroud)

django methods formview

3
推荐指数
1
解决办法
1128
查看次数

标签 统计

django ×1

formview ×1

methods ×1