表示具有较低小时的TimeField的最佳方式是在'之后。 TimeField有更长的时间

时间:2015-12-04 15:50:32

标签: python django django-models

我有一个带有start_time和stop_time的每日事件模型。

class DailyEvent(models.Model):
    start_time = models.TimeField()
    stop_time = models.TimeField()

例如,如果start_time是晚上8点且stop_time是凌晨3点,那么表示stop_time来自''之后的最佳方法是什么? 39; start_time

我的想法是添加此字段以表示第stop_time代表第二天:

stop_time_next_day = models.BooleanField()

我不想使用DateTimeField,因为我不想使用假的占位符日期,而是更喜欢比DateTimeField更清晰的解决方案。

有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

我得出的结论是,让模型暗示stop_time总是在start_time之后出现是最好的。

答案 1 :(得分:0)

正如 @Gocht 所说,请使用DateTimeField()

public int getStatusBarHeight() {
    int result = 0;
    int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
    if (resourceId > 0) {
        result = getResources().getDimensionPixelSize(resourceId);
    }
    return result;
}

public int getNavigationBarHeight()
{
    boolean hasMenuKey = ViewConfiguration.get(context).hasPermanentMenuKey();
    int resourceId = getResources().getIdentifier("navigation_bar_height", "dimen", "android");
    if (resourceId > 0 && !hasMenuKey)
    {
        return getResources().getDimensionPixelSize(resourceId);
    }
    return 0;
}

例如,

class DailyEvent(models.Model):
    start_datetime = models.DateTimeField()
    stop_datetime = models.DateTimeField()

应该适用于您的情况。你的方法是什么,即只有当start_datetime = 2015-12-04 20:00:00 stop_datetime = 2015-12-05 03:00:00 出现在第二天时,字段stop_time_next_day才会有用,如果stop_time超过1天,将失败

<强>更新

日期时间应该是最佳方式。
您可以在模型中编写方法,以便快速操作。或者您可以覆盖保存方法。

stop_time