mia models.py:TypeError: tipo di operando non supportato (s) per -: 'datetime.time' e 'datetime.time'
class Attendancename(models.Model):
teacher_name = models.ForeignKey(Teachername, default='Ram')
date = models.DateField('Date', default=datetime.datetime.today)
intime = models.TimeField('IN-TIME', auto_now=True)
outtime = models.TimeField('OUT-TIME', auto_now=True)
def hours_conversion(self):
startdelta = datetime.timedelta(hours=self.intime.hours, minutes=self.intime.minutes, seconds=self.intime.seconds)
enddelta = datetime.timedelta(hours=self.outtime.hours, minutes=self.outtime.minutes, seconds=self.outtime.seconds)
return (enddelta-startdelta).seconds/3600
def __str__(self):
return "%s" %self.teacher_name
mia views.py:
def add_atten(request):
if request.method == 'POST':
form = AttendancenameForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect(reverse('student:listatten'))
else:
print(form.errors)
else:
form = AttendancenameForm()
return render(request, 'add_atten.html', {'form': form},)
mia forms.py:
class AttendancenameForm(ModelForm):
intime = forms.TimeField(input_formats=('%H:%M',))
outtime = forms.TimeField(input_formats=('%H:%M',))
teacher_name = forms.ModelChoiceField(queryset=Teachername.objects.all())
class Meta:
model = Attendancename
fields = ('teacher_name', 'date', 'intime', 'outtime',)
in realtà sto cercando di calcolare il numero totale di ore in base alla differenza di 'intime'
e 'outtime'
nel mio modello s.py file ma si eleva sopra erroe. Penso che sto facendo un errore di sintassi. Qualcuno può dirmi qual è la sintassi corretta o il metodo per farlo? Qualunque corpo mi suggerisca cosa fare per risolverlo?
Non sono sicuro del motivo per cui si desidera archiviare questo in un campo, quando viene calcolato in modo banale dai tempi di entrata e di uscita. Meglio avere un metodo che lo renda su richiesta. –
Quindi, come posso mostrarlo nei miei modelli? Supponiamo che abbia fatto una tale funzione, allora come posso mostrarlo ai miei modelli all'utente? –
Allo stesso modo. Se si tratta di un metodo sul modello e non accetta argomenti, puoi chiamarlo direttamente dal modello. –