Python Django自动生成的表单字段

Python Django自动生成的表单字段,python,django,django-forms,Python,Django,Django Forms,我想做的是根据前面的值自动添加表单中的一些字段。让我向您展示我的示例: 我的型号 forms.py 我的观点。py html.file 添加测量值 {%csrf_令牌%} {{form | crispy}} 拯救 不过,我希望根据我之前输入的内容自动生成字段组、子组和编号。 例如,我输入的第一个度量值: 分组:HouseSubgroup:LightNumber:1Voltage:10Comment:No Comment 单击“保存”后,我希望字段组、子组和编号已经包含以下信息: 分组:Hou

我想做的是根据前面的值自动添加表单中的一些字段。让我向您展示我的示例:

我的型号

forms.py

我的观点。py

html.file


添加测量值
{%csrf_令牌%}
{{form | crispy}}
拯救
不过,我希望根据我之前输入的内容自动生成字段
子组
编号
。 例如,我输入的第一个度量值:

分组:
House
Subgroup:
Light
Number:
1
Voltage:
10
Comment:
No Comment

单击“保存”后,我希望字段
子组
编号
已经包含以下信息:

分组:
House
Subgroup:
Light
Number:
2
Voltage:
12
Comment:
No Comment

下一个:

分组:
House
Subgroup:
Light
Number:
3
Voltage:
15
Comment:
No Comment


以便只添加我的测量值并节省时间。但是,这并不意味着我不能更改
子组
数字
字段。

使用jquery进行ajax调用(而不是刷新页面和丢失值)并动态设置所需字段,在您的情况下为“数字”。例如,`$.ajax({type:“POST”url:“form_action_url”,data:“form_data”,success:function(data){$(''number_field_id').value+=1;}}})`使用jquery进行ajax调用(不刷新页面和丢失值),并动态设置所需的字段,在你的情况下-‘数字’。例如,`$.ajax({type:'POST“url:“form_action_url”,data:“form_data”,success:function(data){$(''number_field_id')。value+=1;})`
class Measurement(models.Model):
    group = models.CharField(max_length=250)
    subgroup = models.CharField(max_length=250)
    number=models.PositiveIntegerField(default=1)
    voltage= models.PositiveIntegerField()
    comment = models.TextField(default='no comment')
    created = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.group
class MeasurementForm(forms.ModelForm):
    class Meta:
        model = Measurement
        fields = ['group','subgroup','number','voltage','comment']
def measurement(request):
    if request.method == "POST":
        form = MeasurementForm(request.POST, request.FILES)
        if form.is_valid():
            measurement = form.save(commit=False)
            measurement.save()
            return redirect('data:measurement')
    else:
        form = MeasurementForm()
    context = {'form': form,}
    template = 'data/measurement.html'
    return render(request, template, context)
            <div class="panel panel-primary">
                <div class="panel-heading">
                    <h4>Add a measurement</h4>
                </div>
                <div class="panel-body">
                    <form method='POST' enctype="multipart/form-data">
                    {% csrf_token %}
                    {{ form|crispy }}
                    <button type = 'submit' class="btn btn-success">Save</button>
                    </form>
                </div>
            </div>