- pycharm创建Django项目,要在settings.py文件顶部添加import os,否则会产生缺少os报错(name ‘os’ is not defined)。
3.23
- django.db.utils.OperationalError: (1050, “Table ‘django_content_type’ already exists”)
解决方法:删掉了数据库中所有因Django创建出来的内容,删除了migrations下除了__init__.py之外的所有文件,重新makemigrations、migrate
参考链接 - Django连接MySQL已有的表,怎么解决?
- Django的app创建,建几个APP?
- 访问后台返回列表类型数据
list = [1,2,3]
# 正确方式
return JsonResponse(arr, safe=False)
# 错误方式
return HttpResponse(arr)
HttpResponse的错误结果
3.24
- Django连接数据库已有的表格
- 具体方式是,终端运行,输出已连接的数据库里的所有表的内容
python manage.py inspectdb
- 复制想要建立model的表内容到对应的model文件中,
如果新建了APP的话,要记得加到setting.py文件中 - 运行以下命令
python manage.py makemigrations
python manage.py migrate
- 如果提示表已存在的error,不用管(4.9表示存疑)
3.25
- 发现了自带的admin可以用UI优化,有现成的UI库哈哈哈哈
教程
simpleUI官方文档 - 新增APP
需要在settings.py文件新增App的名字
需要在App里面的admin文件添加
from . import models
admin.site.register(models.Product)
3.26
- django的simpleUI教程
结合这个教程,搞懂了simpleUI导航的自定义实现
3.29
- 重新梳理构建了后台管理网站的结构
admin高级自定义
参考上文,改了表名为中文,把每条记录的显示改为某个属性值
4.1
-
Django多条件筛选
多条件筛选教程 -
4.24更新 多条件筛选,可以直接
-
报错
##一开始写的是返回数据的id,是int型,会报错
def __str__(self):
return self.id
##后来改成字符串类型的字段了
def __str__(self):
return self.productName
4.2
- Django DateField DateTimeField TimeField
Django中的日期和时间格式 DateTimeField
auto_now_add=True 但是在admin不显示了 - 需要研究研究modelAdmin,把各个model的id设置为readonly,但是为什么设置之后不显示了????
- 4.26更新,我太愚蠢了,今天发现readonly的字段都跑到编辑页面的最下面了
Django admin 模型选项(ModelAdmin) 【详细】 - modelAdmin
把每个model的总表改成列表模式,显示各个字段的值
4.5
- 更新model内容,添加id字段,相当于新建覆盖了原来的id字段,就会把原来MySQL设置的自增取代掉
4.6
- 接昨天,自增重新设置上之后,默认从1开始id自增,但是与已经有的数据冲突 解决方法:不断增加数据,一直报错到与以后数据不冲突
4.14
4.15
- 时间降序升序排序
- 需要研究一下,有关时间段的变量,是否可以储存在数据库里?产品的额度
datetime.timedelta类介绍 - Django 获取当前时间、以及格式化日期的方法
- Django objects的查询结果转化为json的三种方式
终于去搜了搜有没有简单的方式,把objects的查询结果转为json,一开始搜到的是很笨的for循环处理,后面就一直复制粘贴改。但是for循环处理的好处是可以筛选部分字段
4.23
哈哈哈哈哈哈哈又研究了一下admin,计划的3完成了!!
- 利用了ManyToManyField
Django admin 后台管理系统 高级自定义 (上)
Django admin 后台管理系统 高级自定义 (中)
Django admin 模型选项(ModelAdmin) 【详细】
model.Order里需要绑定宝贝的信息,编辑or添加页面的字段名由此处的verbose_name控制
被选择的model class的返回值也改成了需要的信息
效果:
- 但是同一个model class里有多个字段关联同一个model不行,多个model关联同一个model也不行,需要研究下
- ManyToManyField不存在数据库里,存在哪里呢?
- admin里的filter_horizontal需要研究下
- ManyToManyField不能直接显示在表单中,需要改造。表单的列名由此处的baby_.short_description控制
4.24
- 改了ManyToManyField字段之后,对应view里的方法,处理该字段的时候也要变。