如何实现使用数据库中的值填充的下拉列表

问题描述 投票:1回答:1

我对Python和Django非常陌生,因此遇到了这个问题。我想要做的是使用Django表单创建HTML Select标签的行为。必须使用数据库中的值填充此下拉列表/选择。

我已经拥有的是location = forms.ModelChoiceField(queryset = MyModel.objects.all()),它确实为我提供了选择/下拉控件,但是我需要它来显示数据库中的一个值,并具有一个不同的实际值(两者都来自同一表的不同列)

我在HTML代码中的意思如下:

<select>
  <option value="1">Berlin</option>
  <option value="2">New York</option>
  <option value="3">London</option>
  <option value="4">Riga</option>
</select> 

因此,使用表格,我会看到城市的名称,例如。伦敦,但是当它被选中并提交时,我在数据库中插入3。

期待您的建议。

python html django forms pgadmin-4
1个回答
0
投票

您可以尝试这个

在forms.py

class your_form(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        super(your_form, self).__init__(*args, **kwargs)
        self.fields['location'].label_from_instance = self.label_from_instance

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

from docs

from django.forms import ModelChoiceField

class MyModelChoiceField(ModelChoiceField):
    def label_from_instance(self, obj):
        return "My Object #%i" % obj.id

请参阅this

© www.soinside.com 2019 - 2024. All rights reserved.