Django

A collection of 4 posts

Django

使用信号监控 Django 模型对象字段值的变化

Django 信号 (Signals) 的功能类似于 WordPress 的动作 (action),用于为项目全局增加事件的广播 (dispatch) 与接收 (receive) 机制。其中,灵活使用其内置的模型信号 (Model Signals) 的接收功能就可以监控大部分模型对象 (Model instances) 的变化。因为不需要修改模型本身的代码,在进行跨应用 (App) 监控时有低耦合的优势。 基本用法 信号的基本用法官方文档上的主题与参考上已经有详细描述。本文只提几个要点(本文环境:Django 1.8 & Python 3.4): 代码组织 官方推荐在应用目录下新增一个 signals.py 文件,同时参考官方文档的应用配置节中自定义应用配置 (AppConfig) ,重载应用配置类的 run

Python

Cent OS 下使用 Nginx 部署 Python 3 编写的 Django 工程的 uwsgi

官方推荐在 systemd 中使用 emperor 的方式进行服务器自启动的部署。我觉得在 uwsgi 进程之上再加一个管理进程,显得有点重。于是就没用 emperor 的方式而是直接调用业务的 uwsgi 进行部署。 uwsgi.ini 内容如下 [uwsgi] chdir=/path/of/project module=project.wsgi:application master=True pidfile=/run/uwsgi.pid vacuum=True max-requests=5000 socket=/run/uwsgi.socket thunder-lock=True enable-threads=True

Python

Django admin 界面显示不正常的可能原因 (Python 2)

检查定义中是不是有些包含中文的字符串没有使用 unicode 字符串语法 u'呵呵'。 已确认下面两个问题都是因为该原因而起 django-constance 中的 description 显示不正常:description 没有使用 unicode 字符串 modelAdmin 中 filter_horizontal (filter_vertical) 显示不正常:Model 的 verbose_name 没有使用 unicode 字符串。

Django

Django 1.7 中 migrate 无法执行而且表不存在的解决方案

现象 执行 python manage.py migrate 时,系统提示 No migrations to apply. 但是数据库中仍然没有迁移后的表格。 解决方案 执行 python manage.py dbshell 进入 dbshell 。执行 SELECT * FROM django_migrations 发现将要执行的迁移脚本的 id 已经添加在表中了,将其删除即可。 原因 发现是之前按照某个说明执行了一次 python manage.py migrate --fake 导致的。--fake 的含义是不执行该迁移脚本但是标记该脚本已经被执行过。导致之后无法正常进行迁移。