下午好,
我有一个包含不同类型字段的表单,包括需要一小时的表单(我不使用timepicker而是textinput)。为了开发此表单,我在通用视图.form
旁边使用了createview
类;除了那些需要输入一小时的数据之外的所有数据都会被保存。使用其他通用视图显示数据时,此字段显示为None
。我尝试过使用TextInput
而不是TimeInput
,但没有任何区别。这是我的模特:
class Reserva(models.Model):
ESTADOS_CHOICES = (
('AP', 'Aprobado'),
('PE', 'Pendiente'),
('NE', 'Negado'),
)
SALONES_CHOICES = (
('S1', 'Salon 1'),
('S2', 'Salon 2'),
('S3', 'Salon 3'),
('CA', 'Cafeteria'),
)
usuario = models.ForeignKey(User)
fecha_peticion = models.DateTimeField(auto_now_add=True, blank=True, null=True)
asunto = models.CharField(max_length=80)
fecha_inicio = models.DateField(blank=True, null=True)
fecha_fin = models.DateField(blank=True, null=True)
salon = models.CharField(max_length=2, choices=SALONES_CHOICES, blank=True, null=True)
hora_inicio = models.TimeField()
hora_fin = models.TimeField()
estado = models.CharField(max_length=2, choices=ESTADOS_CHOICES, blank=True, null=True)
observaciones = models.CharField(max_length=100, blank=True, null=True)
Este es mi formulario de la clase .form。
class F_EnvioPeticion(forms.ModelForm):
hora_inicio = forms.TimeField(input_formats=('%H:%M'), widget=forms.TimeInput(format='%H:%M')),
class Meta:
model = Reserva
fields =[
'asunto',
'fecha_inicio',
'fecha_fin',
'salon',
'hora_inicio',
'estado',
]
labels = {
'asunto' :'Este es mi asunto:',
'fecha_inicio' :'Día de inicio',
'fecha_fin' :'Día de fin',
'salon' :'Elija un salón:',
'hora_inicio' :'Ingrese una hora de inicio',
'estado' :'Estado',
}
widgets = {
'asunto' : forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Ejm: Reunión de docentes'}),
'fecha_inicio' : forms.DateInput(attrs={'class': 'form-control', 'placeholder': 'dia/mes/año'}),
'fecha_fin' : forms.DateInput(attrs={'class': 'form-control', 'placeholder': 'dia/mes/año'}),
'salon' : forms.Select(attrs={'class': 'form-control'}),
'hora_inicio' : forms.TimeInput(attrs={'class': 'form-control'}),
'estado' : forms.Select (attrs={'class': 'form-control'}),
}
我的班级表格.form
。
class F_EnvioPeticion(forms.ModelForm):
hora_inicio = forms.TimeField(input_formats=('%H:%M'), widget=forms.TimeInput(format='%H:%M')),
class Meta:
model = Reserva
fields =[
'asunto',
'fecha_inicio',
'fecha_fin',
'salon',
'hora_inicio',
'estado',
]
labels = {
'asunto' :'Este es mi asunto:',
'fecha_inicio' :'Día de inicio',
'fecha_fin' :'Día de fin',
'salon' :'Elija un salón:',
'hora_inicio' :'Ingrese una hora de inicio',
'estado' :'Estado',
}
widgets = {
'asunto' : forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Ejm: Reunión de docentes'}),
'fecha_inicio' : forms.DateInput(attrs={'class': 'form-control', 'placeholder': 'dia/mes/año'}),
'fecha_fin' : forms.DateInput(attrs={'class': 'form-control', 'placeholder': 'dia/mes/año'}),
'salon' : forms.Select(attrs={'class': 'form-control'}),
'hora_inicio' : forms.TimeInput(attrs={'class': 'form-control'}),
'estado' : forms.Select (attrs={'class': 'form-control'}),
}
我的观点.views
class caoss(CreateView):
login_required = True
model = Reserva
form_class = F_EnvioPeticion
template_name = 'reserva0.html'
success_url = 'escritorio'
def form_valid(self, form):
form.instance.usuario = self.request.user
form.save()
return super(caoss, self).form_valid(form)
页面.html
{% if f_peticion.errors %}
<p style="color: red;">Hay unas cosas que debe corregirse</p>
{% endif %}
<form action="{% url 'caoss' %}" method="post" role="form">
{% csrf_token %}
<div class="form-group">
<label for="{{ form.asunto.id_for_label }}">{{ form.asunto.label }}</label>
{{ form.asunto }}
</div>
<div class="form-group">
<label for="{{ form.fecha_inicio.id_for_label }}">{{ form.fecha_inicio.label }}</label>
{{ form.fecha_inicio }}
</div>
<div class="form-group">
<label for="{{ form.fecha_fin.id_for_label }}">{{ form.fecha_fin.label }}</label>
{{ form.fecha_fin }}
</div>
<div class="form-group">
<label for="{{ form.salon.id_for_label }}">{{ form.salon.label }}</label>
{{ form.salon }}
</div>
<div class="form-group">
<label for="{{ form.hora_inicio.id_for_label }}">{{ form.hora_inicio.label }}</label>
{{ form.hora_inicio }}
</div>
<div class="form-group">
<label for="{{ form.estado.id_for_label }}">{{ form.estado.label }}</label>
{{ form.estado }}
</div>
<button class="btn btn-outline btn-primary btn-lg btn-block" type="submit" name="consultar">Consultar</button>
</form>
我已查阅西班牙语和英语版本的所有相关问题,但我没有发现问题,希望您能帮助我。