Django 如何在单个模板中保存1个表单和创建视图
我需要你的帮助,我有以下问题。 在这些时刻,它已经保留了改变的原因,那就是texfield 我附上相应的型号: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
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%}