gpt4 book ai didi

django - 在 Django 中使用动态选择字段

转载 作者:行者123 更新时间:2023-12-04 14:48:01 25 4
gpt4 key购买 nike

我有一个 choiceField为了创建一个带有一些选项的选择字段。像这样的东西:

forms.py
class NewForm(forms.Form):
title = forms.CharField(max_length=69)
parent = forms.ChoiceField(choices = CHOICE)

但我希望能够在没有预定义元组的情况下创建选项(这是 ChoiceField 所需的)。基本上,我需要访问 request.user 以根据每个用户填充一些选项标签,但我不知道是否有任何方法可以在 forms.Form 类中使用 request。

另一种方法是预填充 NewForm 的实例通过:
views.py
form = NewForm(initial={'choices': my_actual_choices})

但我必须添加一个虚拟 CHOICE 来创建 NewForm 并且 my_actual_choices 似乎无论如何都不起作用。

我认为解决这个问题的第三种方法是创建 ChoiceField 的子类并重新定义 save()但我不知道如何去做。

最佳答案

您可以通过覆盖 来动态填充它们。初始化 ,基本上代码看起来像:

class NewForm(forms.Form):
def __init__(self, choices, *args, **kwargs):
super(NewForm, self).__init__(*args, **kwargs)
self.fields["choices"] = forms.ChoiceField(choices=choices)
NewForm(my_actual_choices)NewForm(my_actual_choices, request.POST, request.FILES)等等。

关于django - 在 Django 中使用动态选择字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11588418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com