django - 模型上的日期验证 - 时间/日期冲突
问题描述
我正在学习 Django,并且正在用它构建一个电影院预订系统。在这个电影院预订中,只有一个电影院。每个电影院只有一个房间。在这个房间里,每小时放映一部电影。这家电影院只有一名员工和几位顾客。我将员工设置为超级用户,这样他就可以从“/admin”添加/删除等电影。
因此,我只有两个模型。首先,帐户(又名客户)。其次,电影。我只想在以下情况下允许创建新电影: - 电影的创建日期现在已经过去(不能创建过去的时间)。- 由于只有一个房间,只有在该特定日期(日-月-年时-分-秒)中还没有电影时,才能创建电影。
我的电影模型是:
class Movie(models.Model):
title = models.CharField(max_length=255)
description = models.TextField(null=True)
price = IntegerField(default=10)
movie_duration = models.IntegerField(default=1),
when_movie_created = models.DateTimeField()
when_movie_displayed = models.DateTimeField()
who_created = models.ForeignKey(User, on_delete=models.CASCADE, null=True, editable=False)
我想要的结果如下:如果员工(又名超级用户)添加了一部新电影,但要么是他在过去添加的,要么是添加了与现有电影冲突的日期,他不应该这样做.
我不确定如何验证此输入。因为:
1- 我不完全确定如何在我的模型中设置当前日期
2-我不确定应该在哪里编写函数来检查电影日期是否与另一个电影日期发生冲突。(它应该在我的模型中还是在我的视图中?)
我试图在 Stackoverflow 上查看 Django 文档和其他答案,但我仍然卡住了。
解决方案
您可以像这样设置当前时间
from django.utils import timezone
when_movie_created = models.DateTimeField(default=timezone.localtime)
如果我明白你的意思
2:您可以在视图和模型之间创建接口以创建新的电影事件,在模型中您可以编写函数来对数据库进行操作
推荐阅读
- android - Android int/double 计算随机溢出
- memory-leaks - Xcode UIImage imageWithCGImage 内存泄漏
- python - Eliminate numbers between 1 and 100 present in list
- java - 用于 Java 的 ArraList.forEach 在 while 循环内无法正常工作
- android - 如何在 Android 中制作登录系统?
- javascript - 为什么我不能将标题背景设置为十六进制值?
- cakephp - Cakephp 从表中检索行数据
- android - 刷掉应用程序时通知不起作用
- swift - Firestore 数据库不存储数据
- rest - 独立(微)服务是个悖论吗?