Предварительно заполните правильный выбор для CharField в форме Django - PullRequest
0 голосов
/ 15 сентября 2018

У меня есть модель, которая содержит 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 за то, что побудил меня копать глубже. Джанго работал просто отлично. Мое представление ajax не было настроено должным образом, и неправильный jquery мешал отображаемому варианту. Спасибо за ваш ответ, и я прошу прощения за любое потраченное время. Фил

1 Ответ

0 голосов
/ 15 сентября 2018

Я только что разработал решение jquery, но я бы хотел что-то более похожее на django, если это возможно ...

$("#id_some_field").val("{{ form.some_field.value }}");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...