Django 如何在单个模板中保存1个表单和创建视图

Django 如何在单个模板中保存1个表单和创建视图,django,django-models,django-forms,django-templates,django-views,Django,Django Models,Django Forms,Django Templates,Django Views,我需要你的帮助,我有以下问题。 在这些时刻,它已经保留了改变的原因,那就是texfield 我附上相应的型号: class Condition(models.Model): UNITS_OF_MEASURE =( ('P', '%'), ('C', '°C'), ('F', '°F'), ('CM','cm'), ('MM', 'mm'), ('S', 'Seg'), ) name = models.CharField("Nombre:",max

我需要你的帮助,我有以下问题。

在这些时刻,它已经保留了改变的原因,那就是texfield

我附上相应的型号:

class Condition(models.Model):
UNITS_OF_MEASURE =(
    ('P', '%'),
    ('C', '°C'),
    ('F', '°F'),
    ('CM','cm'),
    ('MM', 'mm'),
    ('S', 'Seg'),
)
name = models.CharField("Nombre:",max_length=20)
nominal_value = models.DecimalField("Valor Nominal:", max_digits=5, decimal_places=2)
min_value = models.DecimalField("Valor Minimo:", max_digits=5, decimal_places=2)
max_value = models.DecimalField("Valor Maximo:", max_digits=5, decimal_places=2)
unit_of_measure = models.CharField("Unidad de medicion",choices=UNITS_OF_MEASURE,max_length=20)
last_value = models.DecimalField("Valor de Ultima corrida:", max_digits=5, decimal_places=2)
is_reference = models.BooleanField()
job_instruction = models.ForeignKey(JobInstruction,on_delete=models.CASCADE)

def __str__(self):
    return self.name

def get_absolute_url(self):
    return reverse("conditions:list_condition")

class ChangeLog(models.Model):
          STATES =(
                   ('ONREVIEW', 'En revision'),
                   ('ACCEPTED', 'Aceptado'),
                   ('DENIED', 'Denegado'),
                  )
           job_instruction= models.ForeignKey(JobInstruction,on_delete=models.CASCADE)
           date_created  = models.DateField("Fecha creacion:",auto_now_add=True)
           state = models.CharField(max_length=20, choices=STATES, default="En revision")
           author = models.ForeignKey(User,on_delete=models.CASCADE, null = True, blank= True)
           reason_for_change = models.TextField("Razon de cambio")

def __str__(self):
    return f'{self.job_instruction}'

class ValueChange(models.Model):
            condition = models.ForeignKey(Condition,on_delete=models.CASCADE)
            changeLog = models.ForeignKey(ChangeLog,on_delete=models.CASCADE)
            value = models.DecimalField("Valor", max_digits=5, decimal_places=2)

def __str__(self):
    return f'{self.condition}'
现在在视图中,我有以下内容

class CreateChangeLog(SuccessMessageMixin,generic.CreateView):
template_name= "conditions/create_change_log.html"
model = ChangeLog
fields= [
    'reason_for_change',
    ]
success_url="/"
success_message = "  was created successfully"
form_value = ValueChangeForm


def get_context_data(self, **kwargs):
    job_queryset =JobInstruction.objects.all()
    job_instruction = get_object_or_404(job_queryset,pk=self.kwargs['pk']) 
    context = super().get_context_data(**kwargs)


    context['title'] = 'Cambios'
    context['job_ins'] = job_instruction
    context['breadcrumb_list'] = [
        {'title':'Condiciones', 'url':reverse('conditions:index')},
        {'title':'Maquinas', 'url':reverse('conditions:list_machine')},
        {'title':'Hojas de condiciones', 'url':reverse('conditions:detail_machine', args=(job_instruction.id,))},
        {'title':job_instruction, 'url':reverse('conditions:detail_job_instruction', args=(job_instruction.id,))},
        ]
    return context

def form_valid(self, form,*args,**kwargs):
    job_instruction = get_object_or_404(JobInstruction, pk=self.kwargs['pk'])
    ChangeLog = form.save(commit=False)
    ChangeLog.author = self.request.user
    ChangeLog.job_instruction = job_instruction
    request = super(CreateChangeLog, self).form_valid(form)
    if form.is_valid():
        ChangeLog.save()
    return request
我想知道如何保存不在“创建”视图中的其他字段,以便您可以将值保存在“值更改”中。首先,必须将更改日志附加到我的模板,以便您可以将其可视化

{% extends "conditions/base.html" %}
{% load bootstrap4 %}
{% block Content %}

<form method = "post"> 
                {% csrf_token %}
                    <table class="table text-center">
                                <thead>
                                      <tr>
                                          <th scope="col">Condición</th>
                                          <th scope="col" >Min - Max</th>
                                          <th scope="col">Valor Nominal</th>
                                          <th scope="col">Cambio</th>
                                </thead>
                        <tbody>
                                    {% for condition in job_ins.condition_set.all %}   
                                              <tr>
                                                    <td> {{condition.name}} ( {{condition.unit_of_measure}} )</td>
                                                    <td> {{condition.min_value}} - {{condition.max_value}} </td>
                                                    <td> {{condition.nominal_value}}</td>
                                                    <td>{{condition.id }}  <input name={{condition.id}}  type="number" placeholder={{condition.nominal_value}}> </td>
                                              </tr>

                                    {%endfor%}                                      
                                              <tr>
                                                    <td colspan="4"> {% bootstrap_form form %}</td>
                                              </tr>
                                              <th scope="row" class="Activate"></th>
                                                      <td></td>
                                                      <td></td>
                                                      <td><input type = "submit" value = "Guardar cambios"  class="btn btn-success"> 
                                              </tr>
                        </tbody>
                    </table>
</form>
{% endblock%}
{%extends“conditions/base.html”%}
{load bootstrap4%}
{%block Content%}
{%csrf_令牌%}
康迪西翁
最小-最大
名义上的英勇
坎比奥
{job_ins.condition_set.all%}
{{condition.name}}({{condition.unit\u of_measure}})
{{condition.min_value}}-{{condition.max_value}
{{条件.标称值}
{{condition.id}
{%endfor%}
{%bootstrap_form%}
{%endblock%}