【问题标题】:How to allow just round hour in Django models.TimeField?如何在 Django models.TimeField 中只允许一个小时?
【发布时间】:2020-01-08 12:22:16
【问题描述】:

我想在我的 Django 表中添加一个models.TimeField 字段。

并限制用户,使他只能添加一个圆形小时(例如 13:00 而不是 13:30)。

最好的方法是什么?

【问题讨论】:

  • 为该字段添加额外的验证。

标签: django database django-models


【解决方案1】:

你可以定义一个额外的validator [Django-doc]:

from django.core.exceptions import ValidationError

def validate_round_hour(value):
    if not value.minute == value.second == value.microsecond == 0:
        raise ValidationError(
            'This should be a round hour.',
            params={'value': value},
        )

然后您可以将验证器添加到您的模型字段:

class SomeField(models.Model):
    some_time = models.TimeField(validators=[validate_round_hour])

请注意,这不会在数据库级别强制执行。但是表单会运行验证器,因此可以防止用户输入无效数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2012-03-11
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    相关资源
    最近更新 更多