在我的django webapp中,我创建了一个表单,用户输入完成活动所需的时间,以小时和分钟为单位(例如,2小时33分钟)。
我希望输入在客户端显示为小时和分钟,但只需几分钟即可保存到模型中(例如153)
目前,输入仅在几分钟内给出。我担心这是相当难看/不可读的:
models.py:
class Activity(models.Model):
time_taken = models.PositiveIntegerField(default=0)

add_activity.html:
<form id="add_session_form" method="post" action="" enctype="multipart/form-data">
{% csrf_token %}
{{ add_activity_form.as_p }}
<input type="submit" name="submit" value="Add Activity" />
</form>
&#13;
forms.py:
class Activity(forms.ModelForm):
class Meta:
model = Activity
fields = ('time_taken', 'subject')
&#13;
有人可以帮我改变表格的输入,以便用户单独输入小时和分钟,同时仅以分钟为单位存储时间。
答案 0 :(得分:0)
在您的表单中
class ActivityForm(forms.ModelForm):
hours = forms.IntegerField(max_value=12,min_value=0)
class Meta:
model = Activity
fields = ('time_taken', 'subject')
以正在进行的方式呈现表单
在视图中
form = ActivityForm(request.POST)
hours = form.cleaned_data['hours']
minutes = form.cleaned_data['time_taken']
total_time = 60*hours + minutes
Activity.objects.create(time_taken = total_time)