meine models.py:Typeerror: nicht unterstützte Operandtyp (e) für: - 'datetime.time' und '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
mein 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},)
mein 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',)
Eigentlich basiert auf einer Differenz von 'intime'
und 'outtime'
in meinem Modell ich versuche Gesamtzahl der Stunden zu berechnen an der py-datei, aber es erhebt sich über erroe. Ich denke, ich mache Syntaxfehler. Kann mir jemand bitte sagen, was ist die richtige Syntax oder Methode dafür? Jeder Körper bitte schlagen Sie mir vor, was zu tun ist, um es zu beheben?
Ich bin mir nicht sicher, warum Sie dies in einem Feld speichern möchten, wenn es aus den In- und Out-Zeiten trivial berechnet wird. Lieber eine Methode, die sie bei Bedarf zurückgibt. –
Wie kann ich es in meinen Vorlagen zeigen? Angenommen, ich habe eine solche Funktion erstellt, wie kann ich sie dann in meinen Vorlagen den Benutzern zeigen? –
In genau der gleichen Weise. Wenn es sich um eine Methode im Modell handelt und keine Argumente verwendet werden, können Sie sie direkt aus der Vorlage aufrufen. –