窗体在具有泛型类的数据库中不节省时间

2024-09-27 00:12:03 发布

您现在位置:Python中文网/ 问答频道 /正文

下午好

我有一个带有不同类型字段的表单,包括一个需要一小时的表单(这里我不使用计时器,而是使用textinput)。为了开发这个表单,我在泛型视图createview旁边使用了一个.form类;除需要输入一小时的数据外的所有数据都被保存。当使用另一个通用视图显示数据时,此字段显示为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)

这是我的处方。形式

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>

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


Tags: divformtrueformodelsformsattrslabel

热门问题