Django

来源:http://www.sh-fengwen.com 作者:鲜果干果 人气:178 发布时间:2019-11-19
摘要:1 CharField #字符串字段, 用于较短的字符串. #CharField 要求必须有一个参数 maxlength,用于从数据库层和Django校验层限制该字段所允许的最大字符数. 升级过程中碰到的一些注意点,拿出来与

<1> CharField
#字符串字段, 用于较短的字符串.
#CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的最大字符数.

升级过程中碰到的一些注意点,拿出来与大家分享,希望对正在或需要升级项目的朋友有帮助。

<2> IntegerField
#用于保存一个整数.

1、URL

Django1.6中使用的是如下代码

from django.conf.urls import patterns, url

from polls import views

urlpatterns = patterns('',
    url(r'^$', views.index, name='index')
)

在Django1.10版本中,patterns方法已经被移除了,换成url即可:

from django.conf.urls import url

from polls import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

<3> FloatField
# 一个浮点数. 必须 提供两个参数:
#
# 参数 描述
# max_digits 总位数(不包括小数点和符号)
# decimal_places 小数位数
# 举例来说, 要保存最大值为 999 (小数点后保存2位),你要这样定义字段:
#
# models.FloatField(..., max_digits=5, decimal_places=2)
# 要保存最大值一百万(小数点后保存10位)的话,你要这样定义:
#
# models.FloatField(..., max_digits=19, decimal_places=10)
# admin 用一个文本框(<input type="text">)表示该字段保存的数据.

2、django-extensions

如果在项目中使用了django-extensions,并且版本低于1.5.9,那么在项目升级的过程中,也要把django-extensions升级到1.5.9版本。

命令直接用

pip install django-extensions==1.5.9

<4> AutoField
# 一个 IntegerField, 添加记录时它会自动增长. 你通常不需要直接使用这个字段;
# 自定义一个主键:my_id=models.AutoField(primary_key=True)
# 如果你不指定主键的话,系统会自动添加一个主键字段到你的 model.

3、django-cors-headers

如果在项目中使用了django-cors-headers,由于Django1.10已经不支持这个组件了,推荐使用django-cors-middleware,具体命令如下。

首先移除django-cors-headers:

pip uninstall django-cors-headers

如果权限不够的话,在前面加上 sudo

然后安装django-cors-middleware

pip install django-cors-middleware

如果权限不够的话,在前面加上 sudo

<5> BooleanField
# A true/false field. admin 用 checkbox 来表示此类字段.

4、South

如果在1.6版本项目中使用了South的话,还要做一下迁移的工作。步骤如下:

  1. 确认所有的installs都以South创建的迁移完全更新。就是确认全部是要更新的。
  2. 从INSTALLED_APPS 中移除 'south'。
  3. 删除你所有的迁移文件(编号标识的),但不能删除所在目录或 __init__.py (切记不可删除__init__.py),也需确认删除 .pyc文件。
  4. 运行 python manage.py makemigrations. Django应该看到空的迁移目录,并以新的格式进行新的初始迁移。
  5. 执行python manage.py migrate --fake-initial。Django会看到初始迁移的表已经存在,并将它们标记为已应用,而不运行它们。(Django不会检查表模式是否与您的模型匹配,只是正确的表名存在)。

迁移参考链接:http://python.usyiyi.cn/translate/django_182/topics/migrations.html

<6> TextField
# 一个容量很大的文本字段.
# admin 用一个 <textarea> (文本区域)表示该字段数据.(一个多行编辑框).

5、Templates

在升级之后,原来项目中settings.py中对于TEMPLATES的设置也失效了。

原项目的设置为:

TEMPLATE_DIRS = (
    os.path.join(PROJECT_ROOT, 'frontend/dist/'),
)

升级之后修改为:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(PROJECT_ROOT, 'frontend/dist/')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

<7> EmailField
# 一个带有检查Email合法性的 CharField,不接受 maxlength 参数.

<8> DateField
# 一个日期字段. 共有下列额外的可选参数:
# Argument 描述
# auto_now 当对象被保存时,自动将该字段的值设置为当前时间.通常用于表示 "last-modified" 时间戳.
# auto_now_add 当对象首次被创建时,自动将该字段的值设置为当前时间.通常用于表示对象创建时间.
#(仅仅在admin中有意义...)

<9> DateTimeField
# 一个日期时间字段. 类似 DateField 支持同样的附加选项.

本文由美高梅游戏平台网站发布于鲜果干果,转载请注明出处:Django

关键词:

上一篇:Django

下一篇:没有了

频道精选

最火资讯