【发布时间】:2015-09-18 07:09:26
【问题描述】:
我的模型.py:
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
我的意见.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},)
我的表单.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',)
实际上,我正在尝试根据我的 models.py 文件中 'intime' 和 'outtime' 的差异来计算总小时数,但它会超出错误。我想我在做语法错误。谁能告诉我这样做的正确语法或方法是什么?
任何机构请建议我如何解决它?
【问题讨论】:
-
我不确定你为什么要将它存储在一个字段中,因为它是从进出时间计算出来的。最好有一个按需返回它的方法。
-
那么如何在我的模板中显示它?假设我已经制作了这样一个功能,那么如何在我的模板中向用户显示它?
-
以完全相同的方式。如果它是模型上的方法并且不带参数,则可以直接从模板中调用它。
标签: python django-models django-templates django-views