django - 日期时间的 Django 检查约束
问题描述
我有这个模型:
class MyModel(models.Model):
creation_datetime = models.DateTimeField()
expiration_datetime = models.DateTimeField()
class Meta:
constraints = [
CheckConstraint(
check=####
)
]
我正在尝试编写一个检查约束来确保expiration_dateime > creation_dateime
. 我无法找到正确使用 Q 对象的方法,不胜感激。
解决方案
对于 Django 3.1:
from django.db import models
from django.db.models import F, Q
class MyModel(models.Model):
creation_datetime = models.DateTimeField()
expiration_datetime = models.DateTimeField()
class Meta:
constraints = [
models.CheckConstraint(
check=Q(expiration_dateime__gt=F('creation_datetime')),
name="mycustomconstraint_check1"
)
]
使用 F 表达式:https ://docs.djangoproject.com/en/3.1/ref/models/expressions/#f-expressions 。
更具体:https ://docs.djangoproject.com/en/3.1/topics/db/queries/#using-f-expressions-in-filters 。
推荐阅读
- r - 为什么我的闪亮应用程序拒绝呈现?
- tensorflow - 在深度学习之外对 Google TPU 进行编程
- reactjs - 如何获取句柄按钮中单击的行的值
- reactjs - 如何在 Strapi + React + Apollo 中修复或查询启发式片段
- angular - Angular 9 请添加@NgModule 注解
- python - VS Code 中的 Python 告诉我一个数字小于一个较小的数字
- flutter - 如何修复启动自定义启动画面时生成的错误?
- python-3.x - Python & Tensorflow & CUDA 环境设置问题
- unity3d - 在 Unity 中构建 Mapbox
- sqlite - 如何将 Ubuntu 18.04 sqlite3 从 3.13 升级到新版本 3.25