Python Django表单初始dict始终为空
views.py forms.pyPython Django表单初始dict始终为空,python,django,Python,Django,views.py forms.py 代码乱七八糟,现在只是随便玩玩。我需要以一种方式来做动态初始数据,我可以在get_initial中做,但不管我做什么,我的初始dict总是空的。我是否遗漏了一些非常愚蠢的东西?您是否定义了get\u initial方法?它看起来像什么?@DanielRoseman我还没有设定。它只是在默认情况下保留在CBV中,呃,那么您希望它如何提供动态数据呢?@DanielRoseman还没有,我还没有做到这一点,因为目前初始值总是空的。当我可以让它显示我正在定义的1时,我
代码乱七八糟,现在只是随便玩玩。我需要以一种方式来做动态初始数据,我可以在get_initial中做,但不管我做什么,我的初始dict总是空的。我是否遗漏了一些非常愚蠢的东西?您是否定义了get\u initial方法?它看起来像什么?@DanielRoseman我还没有设定。它只是在默认情况下保留在CBV中,呃,那么您希望它如何提供动态数据呢?@DanielRoseman还没有,我还没有做到这一点,因为目前初始值总是空的。当我可以让它显示我正在定义的1时,我将转到动态数据。我不知道为什么您希望1出现在从get_initial返回的字典中。正如您所说,get_initial用于动态表单初始数据:这与字段的初始常量是完全不同的。
class PlayerListView(PlayerViewMixin, FormMixin, ListView):
form_class = PlayerFilterForm(initial={'min_rating': 1})
paginate_by = 50
template_name = 'players/player_list.html'
def get_context_data(self, **kwargs):
context = super(PlayerListView, self).get_context_data()
context['form'] = self.form_class
# context['form'].fields['maxrating'].initial = self.request.GET.get('maxrating')
print(self.get_initial())
return context
def get_queryset(self):
qs = super(PlayerListView, self).get_queryset()
minrating = self.request.GET.get('minrating')
maxrating = self.request.GET.get('maxrating')
if self.request.GET.get('minrating'):
qs = qs.filter(overall_rating__gte=minrating)
if self.request.GET.get('maxrating'):
qs = qs.filter(overall_rating__lte=maxrating)
return qs
class PlayerFilterForm(forms.Form):
min_rating = forms.ChoiceField(
initial=1,
choices=[
(x, x) for x in range(1, 100)
]
)
...