无需页面刷新的Django动态更新表单字段

时间:2019-03-28 16:39:52

标签: python html django django-forms

我使用带外键字段的select字段构建了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 :(得分:0)

仅使用Django?否

您需要将JavaScript纳入其中。一些评论提到了React甚至是Angular,它们确实是不错的js框架,但是使用其中任何一个都会使您的问题过分解决。

这是JQuery的亮点。

因此,这是许多解决方案之一的简单指南:

  1. 编写一个Django视图,该视图返回要显示的所需选项。
  2. 使用JQuery并编写一个get request以获得这些选择。
  3. 再次使用JQuery并相应地修改DOM。

这只是一种方法。