簡體   English   中英

以Django形式預填充CharField的正確選擇

[英]Pre-populate the correct choice for a CharField in a Django form

我有一個包含由選擇組成的CharField的模型,如下例所示

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

這是我的ModelForm

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會正確地預先填充下拉列表,但是我不想這樣做。 有什么方法可以使表格顯示正確的選擇? 任何幫助將不勝感激!

編輯 :正如@solarissmoke在這里要求的是我如何渲染表格。 沒有提交按鈕,因為一旦值更改,我就使用ajax提交表單。

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

注釋感謝@solarissmoke提示我進行更深入的研究。 Django工作得很好。 我的ajax提交設置不正確,並且jquery不正確使顯示的選項混亂。 感謝您的回復,對於您的任何浪費,我深表歉意。 菲爾

我剛剛制定了一個jQuery解決方案,但如果可能的話,我想要更像Django的東西。

$("#id_some_field").val("{{ form.some_field.value }}");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM