1. 完全彻底重置数据库(删库) - 5/12
很多时候项目经过多次迭代, 修改了太多次 model
, 数据库变得奇怪起来, 就算代码没有错, 有些地方跑起来总是不正确, 特别是用 admin
来管理/查看的时候
这时候如果数据不重要, 可以尝试重置数据库再来测试你的项目/代码
不过我的小项目还没迭代多少次, model
就改乱了, 出现了上面的问题, 所以记录一下这样的解决方法
1. 删除所有的migrations
在 CentOS
下, 可以在 manage.py
所在目录执行下面的命令(注意权限):
1 | find . -path "*/migrations/*.py" -not -name "__init__.py" -delete |
如果在其他环境, 可以手动删除这些文件, 每个 app
, migrations
目录下的除了 __init__.py
的文件
2. 删除db.sqlite3文件
db.sqlite3
在 manage.py
所在目录下
3. 重新生成migrations
在 manage.py
所在目录下执行(注意 python
版本, 注意权限):
1 | python manage.py makemigrations |
完成
2. 对 PUT DELETE 方法的处理 - 5/25
Django
本身对于 PUT
和 DELETE
请求并没有像POST/GET那样有一个字典结构, 所以需要一些额外处理:
1 | from django.http import QueryDict |
顺便回忆一下, 取 POST
方法参数的方法:
1 | value = request.POST['key'] |
3. 删除 QuerySet
一次查询可能包含很多 model
, 可以直接调用以下方法全部删除
1 | Post.objects.all().delete() |