Django динамическое обновление полей формы без обновления страницы - PullRequest
0 голосов
/ 28 марта 2019

Я построил некоторую форму django, используя поле выбора с полем внешнего ключа.

Все работает нормально, но я хочу кое-что попросить у этих полей.

В моем приложении, потому что он использовался длямногие пользователи работают вместе Мне нужно, чтобы эти поля (выберите поле) были динамическими и обновляли выбранные значения без страницы обновления пользователя, чтобы увидеть последние обновления таблицы.

возможно обновить значения из этой формы выбора полей или формы внешнего ключаполе без страницы обновления?

forms.py

class myForm(forms.ModelForm):
    field_2= forms.ModelChoiceField(queryset=mymodel_2.objects.all(),label="ΔΙΕΥΘΥΝΣΗ")
    class Meta:
        model = Mymodel
        fields = ('field_1', 'field_2', 'field_fk')

models.py

class Mymodel(models.Model):
    field_1 = models.CharField(max_length=100, blank=True, null=True)
    field_2 = models.CharField(max_length=254, choices=EIDOS_PROSWPOU_CHOICES, blank=True)
    eidos = models.CharField(max_length=254,choices=EIDOS_PELATHS_CHOICES,blank=True, null=True)
    field_fk= models.ForeignKey('category', blank=True, null=True)


class category(models.Model):
    title = models.CharField(max_length=100, blank=True, null=True)

class mymodel_2(models.Model):
    task = models.CharField(max_length=100, blank=True, null=True)

html:

<form enctype="multipart/form-data" method="post" action="">{% csrf_token %}
{{ form.as_p }}
<input  type="submit"/>

в html:

<div class="row form-group"> <label>field_fk :</label><select name="field_fk" id="field_fk">
  <option value="" selected=""></option>

  <option value="some value 1">some value 1</option>

  <option value="some value 2">some value 2</option>

  <option value="some value 3">some value 3</option>

  <option value="some value 4">some value 4</option>

</select></div>

1 Ответ

0 голосов
/ 28 марта 2019

Используете только Django? №

Вам нужно будет подключить JavaScript к этому. В некоторых комментариях упоминается React и даже Angular, это действительно хорошие js-фреймворки, но использование любого из них может решить вашу проблему.

Вот где сияет JQuery.

Итак, это простое руководство по одному из многих решений для этого:

  1. Напишите представление Django, которое возвращает желаемые варианты, которые вы хотите показать.
  2. Используйте JQuery и напишите запрос на получение для получения этих вариантов.
  3. Снова используйте JQuery и измените DOM соответствующим образом.

Это всего лишь один подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...