我正在尝试重构我的代码以继承 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)