Form不会在使用泛型类的数据库中节省时间

时间:2017-12-14 19:30:22

标签: python django python-2.7 django-models django-forms

下午好,

我有一个包含不同类型字段的表单,包括需要一小时的表单(我不使用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>

我已查阅西班牙语和英语版本的所有相关问题,但我没有发现问题,希望您能帮助我。

0 个答案:

没有答案