gpt4 book ai didi

python - 如何从 Django ModelChoiceField 查询集中选择值和标签

转载 作者:技术小花猫 更新时间:2023-10-29 12:28:26 25 4
gpt4 key购买 nike

我试图创建一个 Django 表单,我的字段之一包含一个 ModelChoiceField

class FooForm(forms.Form):

person = forms.ModelChoiceField(queryset=Person.objects.filter(is_active=True).order_by('id'), required=False)
age = forms.IntegerField(min_value=18, max_value=99, required=False)

当我尝试上面的代码时,它作为 html 输出返回的是

<option value="1">Person object</option>

在我的个人模型上,我有字段“id、fname、lname、is_active”。是否可以指定我的下拉选项将使用“id”作为值并使用“lname”作为标签?预期的 html应该是

<option value="1">My Last Name</option>

提前致谢!

最佳答案

您可以在 Form 的 init 中添加对 label_from_instance 的调用,即

通过添加类似的东西

class TestForm(ModelForm):
def __init__(self, *args, **kwargs):
super(TestForm, self).__init__(*args, **kwargs)

self.fields['field_name'].label_from_instance = self.label_from_instance

@staticmethod
def label_from_instance(obj):
return "My Field name %s" % obj.name

关于python - 如何从 Django ModelChoiceField 查询集中选择值和标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20012533/

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