Django形成Choicefield参数会话密钥

2j4z5cfb  于 2023-10-21  发布在  Go
关注(0)|答案(2)|浏览(111)

我正在做一个基于session_key参数操作的项目。
我想从数据库中获取数据并将变量添加到表单中的choicefield中。使用ModelChoiceField(queryset=.,empty_label="(Nothing)”)可能是一个选项,但我仍然不能将session_key作为参数来过滤查询集。
所以我的问题是,我如何从视图中的请求中获取session_key并将其传递给forms类中的queryset?
谢谢!
更新:
表格:
class B.B.B.C.(forms.Form):def
init
(self,var_list,*args,**kwargs):super(ChartForm,self).init(*args,**kwargs)self.fields 'x'] = forms.ChoiceField(choices=tuple([(name,name)for name in var_list]))self.fields 'y'] = forms.ChoiceField(choices=tuple([(name,name)for name in var_list]))
但是现在我不能把REQUEST.POST传递给表单.

form = ChartForm(var_list=df.columns.to_list())

iswrvxsc

iswrvxsc1#

你可能想搜索的词是“Django”和“dynamic ChoiceField”。
我手头没有一个例子,但是this question似乎和我猜的差不多。

ohtdti5x

ohtdti5x2#

好了,现在我一直在使用“试错法”和一个大的选择问题在这里的堆栈。
如果你想从django模型中动态创建choicefield而不使用modelform,你可以通过 *args和 *kwargs来获得。
我在FORMS.py修改了我的表格如下:

class CreateChartForm(forms.Form):

def __init__(self, *args, **kwargs):
    super(CreateChartForm, self).__init__(*args, **kwargs)
    req, cols = args
    self.fields['x'] = forms.ChoiceField(choices=tuple([(name, name) for name in cols]))
    self.fields['y'] = forms.ChoiceField(choices=tuple([(name, name) for name in cols]))

CHART_CHOICES = (
    ("Linjediagram", "Linjediagram"),
    ("Stapeldiagram", "Stapeldiagram"),
    ("Korrelationsgraf", "Korrelationsgraf"),
    ("Kaka", "Kaka"),
)

chart = forms.ChoiceField(choices=CHART_CHOICES)
titel = forms.CharField(max_length=255)

然后我在www.example.com文件中传递了请求.POST和VIEWS.py_list():dataframe.columns.to

form = CreateChartForm(request.POST, df.columns.to_list())

现在我有了一个表单,它可以通过Pandas Dataframe访问动态变量名,并将它们添加到表单中的下拉样式选择字段中:-)

相关问题