问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python + django 如何做到一个标签在一定时间内显示

发布网友 发布时间:2022-05-11 04:36

我来回答

3个回答

懂视网 时间:2022-05-11 08:57

设置字段可选

在摆弄了一会之后,你或许会发现管理工具有个限制:编辑表单需要你填写每一个字段,然而在有些情况下,你想要某些字段是可选的。 举个例子,我们想要Author模块中的email字段成为可选,即允许不填。 在现实世界中,你可能没有为每个作者登记邮箱地址。

为了指定email字段为可选,你只要编辑Book模块(回想第五章,它在mysite/books/models.py文件里),在email字段上加上blank=True。代码如下:

class Author(models.Model):
 first_name = models.CharField(max_length=30)
 last_name = models.CharField(max_length=40)
 email = models.EmailField(**blank=True** )

这些代码告诉Django,作者的邮箱地址允许输入一个空值。 所有字段都默认blank=False,这使得它们不允许输入空值。

这里会发生一些有趣的事情。 直到现在,除了__unicode__()方法,我们的模块充当数据库中表定义的角色,即本质上是用Python的语法来写CREATE TABLE语句。 在添加blank=True过程中,我们已经开始在简单的定义数据表上扩展我们的模块了。 现在,我们的模块类开始成为一个富含Author对象属性和行为的集合了。 email不但展现为一个数据库中的VARCHAR类型的字段,它还是页面中可选的字段,就像在管理工具中看到的那样。

当你添加blank=True以后,刷新页面Add author edit form (http://127.0.0.1:8000/admin/books/author/add/ ),将会发现Email的标签不再是粗体了。 这意味它不是一个必填字段。 现在你可以添加一个作者而不必输入邮箱地址,即使你为这个字段提交了一个空值,也再不会得到那刺眼的红色信息“This field is required”。
设置日期型和数字型字段可选

虽然blank=True同样适用于日期型和数字型字段,但是这里需要详细讲解一些背景知识。

SQL有指定空值的独特方式,它把空值叫做NULL。NULL可以表示为未知的、非法的、或其它程序指定的含义。

在SQL中, NULL的值不同于空字符串,就像Python中None不同于空字符串("")一样。这意味着某个字符型字段(如VARCHAR)的值不可能同时包含NULL和空字符串。

这会引起不必要的歧义或疑惑。 为什么这条记录有个NULL,而那条记录却有个空字符串? 它们之间有区别,还是数据输入不一致? 还有: 我怎样才能得到全部拥有空值的记录,应该按NULL和空字符串查找么?还是仅按字符串查找?

为了消除歧义,Django生成CREATE TABLE语句自动为每个字段显式加上NOT NULL。 这里有个生成Author模块的例子:

CREATE TABLE "books_author" (
 "id" serial NOT NULL PRIMARY KEY,
 "first_name" varchar(30) NOT NULL,
 "last_name" varchar(40) NOT NULL,
 "email" varchar(75) NOT NULL
)
;

在大多数情况下,这种默认的行为对你的应用程序来说是最佳的,因为它可以使你不再因数据一致性而头痛。 而且它可以和Django的其它部分工作得很好。如在管理工具中,如果你留空一个字符型字段,它会为此插入一个空字符串(而* 不是*NULL)。

但是,其它数据类型有例外:日期型、时间型和数字型字段不接受空字符串。 如果你尝试将一个空字符串插入日期型或整数型字段,你可能会得到数据库返回的错误,这取决于那个数据库的类型。 (PostgreSQL比较严禁,会抛出一个异常;MySQL可能会也可能不会接受,这取决于你使用的版本和运气了。)在这种情况下,NULL是唯一指定空值的方法。 在Django模块中,你可以通过添加null=True来指定一个字段允许为NULL。

因此,这说起来有点复杂: 如果你想允许一个日期型(DateField、TimeField、DateTimeField)或数字型(IntegerField、DecimalField、FloatField)字段为空,你需要使用null=True * 和* blank=True。

为了举例说明,让我们把Book模块修改成允许 publication_date为空。修改后的代码如下:

class Book(models.Model):
 title = models.CharField(max_length=100)
 authors = models.ManyToManyField(Author)
 publisher = models.ForeignKey(Publisher)
 publication_date = models.DateField(**blank=True, null=True** )

添加null=True比添加blank=True复杂。因为null=True改变了数据的语义,即改变了CREATE TABLE语句,把publication_date字段上的NOT NULL删除了。 要完成这些改动,我们还需要更新数据库。

出于某种原因,Django不会尝试自动更新数据库结构。所以你必须执行ALTER TABLE语句将模块的改动更新至数据库。 像先前那样,你可以使用manage.py dbshell进入数据库服务环境。 以下是在这个特殊情况下如何删除NOT NULL:

ALTER TABLE books_book ALTER COLUMN publication_date DROP NOT NULL;

(注意:以下SQL语法是PostgreSQL特有的。)

我们将在第十章详细讲述数据库结构更改。

现在让我们回到管理工具,添加book的编辑页面允许输入一个空的publication date。

热心网友 时间:2022-05-11 06:05

用自定义标签,这样逻辑就转到后台编写了,然后你后台做个日期判断,返回一个HTML字符串就好了,大概是:

if 当前时间在9月1日到3号之间:
return <div>输出时间</div>
else:
return ""
这样就好了,很久没用了,不然都可以给你写一个。最近有空我帮你研究一下

热心网友 时间:2022-05-11 07:23

import datetime

def xxx():
now=str(datetime.datetime.now())[5:10] #这里now的格式: 08-15
if now in ['09-01','09-02','09-03']:
return True
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
这是个成本会计题,马上要考这道原题了,求大虾帮忙 财务管理类问题,求大虾帮忙,小弟感激不尽。具体问题看问题补充。_百度... 光影魔术手怎么换底色 光影魔术手换底色教程 ...米的绳子围绕一棵树干饶了6圈,还余下1.16米,这棵树干上的直径大约是... ...还余下1.16米,这棵树的树干的直径大约是多少米?求算式! ibm x3500 M5 服务器 运行时风扇声音好大,吵死了,可以下掉一个吗... IBMX3500 M5,最近老是出现自动关机的情况,需要把服务器电源拔掉半分钟... 治疗萎缩性胃炎的方法 怎么治萎缩胃炎 JYF-40FS06电饭煲190块买的是假的吗 电脑找不到引导盘怎么办? 被盗好友被拉黑怎么办? 医保卡清户钱退回到哪里? 社保一般钱是退到哪里去- 问一问 好友被删了,也被盗了怎么办? 住院押金多张卡交的,结算退哪个卡 好友被删了,也被盗了怎么办? 医保卡退费退哪里 房间里莫名其妙的有股酸臭味,晚上就没了,白天又有了,检查了一遍,也没发现有什么东西啊,这是怎么回事 医保在哪里办理退款? 被盗怎么办号码也换了好友也被删了? 呼出来的空气老是有一种酸臭味道,请问是为什么? 朋友被盗了怎么办 医保结算钱退到哪里 小孩发烧住院医保怎么报销 感冒发烧住院社区医保卡能报销吗 公司社保卡生病治疗可以报多少? 广州社保感冒报销多少 ipad可以升级ios10.3吗 社保的医药费怎么报销多少 早上起来喝水有什么好处! 早上起床后喝水有什么好处? 每天早上空腹喝水有什么好处? 每天早上一杯水,对身体有什么好处? 早上喝水有什么好处和坏处? 热血传奇道士的狗去哪升级快? 地板砖上的污渍怎么处理? 成年人买什么保险比较好 手机淘宝账号和电脑淘宝账号有什么不同吗? 是不是一样使用啊 我的手机我看微信时版面经常打转时而横丶时而竖怎样能固定不动?请指教。 深圳律师处理货款案件律师费多少钱 我看微信支付流程好复杂,我也弄不好,平时又不会玩智能手机,怎么办? 我看微信支付开始支持生活缴费了,怎么操作啊? 貂油染发剂怎么样 我看微信好友的朋友圈,就显示最近几天的,最下面显示非朋友最多显示十张照片,怎么回事?他是怎么设置的 找深圳福田律师打官司如何收费 我看我微信好友的资料。不显示,应该是隐藏了。怎么隐藏,不让好友看到我的,,不是让别人搜 深圳律师代理货款催收如何收费 在深圳请律师多少钱? 青丝乌木染发剂怎么样?