Виджет времени Djago не отображается

Все, что я хочу сделать, это добавить виджет времени в мою форму, чтобы я мог легко выбрать время. Все очень просто, страница загружается, но виджеты не появляются. Никаких ошибок, ничего. Я думаю, может быть, я неправильно настроил виджеты формы, но не уверен, что я сделал неправильно. Вот мой Forms.py-

from django.contrib.admin import widgets
from django.contrib.admin.widgets import AdminDateWidget, AdminTimeWidget, AdminSplitDateTime

class WorkOutForm(ModelForm):
    class Meta:
        model = WorkOut
        fields = '__all__'   
        widgets={
            'start':AdminTimeWidget(),
            'end':AdminTimeWidget(),

        }

Вот Models.py. Вы заметите, что поля "начало" и "конец" являются таймфилдами-

class WorkOut(models.Model):
    date=models.DateField(auto_now_add=True, auto_now=False, blank=True)
    day=models.DateField(auto_now_add=True, auto_now=False, blank=True)
    start=models.TimeField(null=True)
    name=models.CharField(max_length=100, choices=move)
    weight=models.CharField(max_length=100, blank=True)
    rep=models.CharField(max_length=100, blank=True)
    pedal= models.CharField(max_length=100, blank=True)  
    stretchtype =models.CharField(max_length=100, blank=True)
    end=models.TimeField(null=True)
    note=models.TextField(max_length=300, blank=True)  

    def __str__(self):
        return self.name

А вот мнения, связанные с этим, хотя я не думаю, что это имеет большое значение -

def workout(request):
    form=WorkOutForm()
    if request.method=="POST":
        form=WorkOutForm(request.POST)
        if form.is_valid():
            form.save()

    context={'form':form}   

    return render(request, 'myapp/enter_workout.html', context)  


 

def update_workout(request, pk):
    order=WorkOut.objects.get(id=pk)
    form=WorkOutForm(instance=order)
    if request.method=='POST':
        form=WorkOutForm(request.POST, instance=order)
        if form.is_valid():
            form.save()
            
            
    context={'form':form}

    return render(request, 'myapp/enter_workout.html', context)

А форма на HTML-странице также очень проста, так что не думаю, что там тоже есть проблемы-

<form action="" method="POST">
            {% csrf_token %}
           
            {{form}}
        
        <input type="submit" value="Submit">
    
        </form>

Что я сделал не так? Как я могу заставить эти виджеты отображаться?

auto_now или auto_now_add в True приведет к тому, что поле будет установлено editable=False и blank=True. Здесь вы можете читать

Подумал, что в форме отображаются только те поля, которые можно редактировать. Я переделал модель, используя текущее время, и теперь все поля в форме видны.

import datetime


class WorkOut(models.Model):
    move = (("1", "Tom"), ("2", "Sara"), ("3", "Emilia"),)
    date = models.DateField(default=datetime.date.today, auto_now=False, blank=True)
    day = models.DateField(default=datetime.date.today, auto_now=False, blank=True)
    start = models.TimeField(null=True)
    name = models.CharField(max_length=100, choices=move)
    weight = models.CharField(max_length=100, blank=True)
    rep = models.CharField(max_length=100, blank=True)
    pedal = models.CharField(max_length=100, blank=True)
    stretchtype = models.CharField(max_length=100, blank=True)
    end = models.TimeField(null=True)
    note = models.TextField(max_length=300, blank=True)

    def __str__(self):
        return self.name
Вернуться на верх