Django以小时和分钟输入,保存为分钟

时间:2017-07-28 06:17:52

标签: python django

在我的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;
&#13;
&#13;

forms.py:

&#13;
&#13;
class Activity(forms.ModelForm):
    
    class Meta:
        model = Activity
        fields = ('time_taken', 'subject')
&#13;
&#13;
&#13;

有人可以帮我改变表格的输入,以便用户单独输入小时和分钟,同时仅以分钟为单位存储时间。

1 个答案:

答案 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)