在Django表单中预填充CharField的正确选项

2024-09-27 00:21:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个模型,它包含一个CharField,由下面的示例中的选项组成

class SomeModel(models.Model):
    some_field = models.CharField(choices=(('Name1', 'Name1'),
                                           ('Name2', 'Name2'),
                                           ('Name3', 'Name3')
                                          )
                                 )

这是我的模型

class SomeModelForm(forms.ModelForm):

    class Meta:
        model = SomeModel

下面是我的基本视图,它将实例附加到窗体:

def some_view(request, model_id):
    somemodel = SomeModel.objects.get(id=model_id)
    form = SomeModelForm(instance=somemodel)
    context = {'form': form}
    return render(request, 'page.html', context)

呈现窗体时,下拉列表不会预先填充。这不是我的代码有问题的情况,因为所有其他表单字段(从本例中省略)都是预先填充的。我知道我可以让CharField成为一个ForeignKey,然后Django会正确地预先填充下拉列表,但我不想这样做。有没有办法让表格显示正确的选择?任何帮助都将不胜感激!你知道吗

编辑:正如@solarismoke所要求的,这里是我呈现表单的方式。没有submit按钮,因为我使用ajax在值更改后立即提交表单。你知道吗

<form action="{% url 'some_location' %}" method="post">
    {{ form.some_field }}
</form>

评论感谢@solarismoke促使我深入挖掘。Django工作得很好。我的ajax提交没有正确设置,不正确的jquery干扰了显示的选项。谢谢你的回复,我为你浪费的时间道歉。菲尔


Tags: 模型formidfieldmodelmodels选项some

热门问题