django models建表设置default=1和blank=True没有效果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django models建表设置default=1和blank=True没有效果相关的知识,希望对你有一定的参考价值。

django models建表设置default=1和blank=True没有效果

提供个思路。没试过,不知道是否可行。
把表的抽象结构定义出一个Model,但记得加上
class Meta:
abstract=True

好了,你得到了一个模型的抽象类。抽象类在syncdb时候不会被建成表。
然后,写一个按照日期动态生成类的东东。比如你的抽象类叫MyModel的话。
def gen_model_by_date(dt=None):
if dt is None:
dt = datetime.datetime.today()
new_model_name = 'MyModel_d'.format(d=dt.strftime('%Y%m%d'))
new_model = type(new_model_name, (MyModel, ), )
return new_model

然后这张表的所有逻辑里,都用这个方法来代替原model。
django代码相关应该也许这么就搞得定吧。 至于表……写SQL每天定时建表,建表以保证不会出现要用的表还没建好的情况就行了。追问

我主要是想知道为什么不好使了 ,因为同事的都好使 直接设置这些属性 数据库字段的属性就会跟着变 想知道这个原因!!

参考技术A django models建表设置default=1和blank=True没有效果正常。追问

为什么这么说。。。

django中model的主键的设置与自增

参考技术A 在django所定义的model里是可以自己设置主键的,具体方法为

但是要注意的是,为了添加元素的过程中主键的自增,主键的设置中不能加入default属性,否则save()的过程将不再是新建元素而是替换元素。

自己在最开始的定义是
AgentInfo_id = models.IntegerField(default=0)
由于设置了默认值,引发了不小的麻烦

以上是关于django models建表设置default=1和blank=True没有效果的主要内容,如果未能解决你的问题,请参考以下文章

django中model的主键的设置与自增

64django之模型层(model)--建表查询删除基础

django ORM模型的数据库建表查询

Django 动态建表

Django的model中日期字段设置默认值的问题

Django数据库数据表操作