admin组件的使用
- 导进来的模板不能直接放到static里,要从其他的地方移动到static里,否则pycharm不能自动改变路径
2.自关联
class Userunfo(models.Model):
title=models.CharField(max_length=32)
price=models.ForeighKey("Userinfo")
或price=models.ForeighKey("self")
3.如果数据库迁移发生错误,可能是和前几次迁移冲突的
解决办法:删除migrations下的文件
4.froms组件单放到一个py文件中,解耦
5.null=True,表示该字段可为空
class Customer(models.Model):
name = models.CharField('姓名', max_length=32, blank=True, null=True)
6.admin的使用
功能:Django提供的以wed形式对模型表进行增删改查的后台数据管理系统,
(1) 将需要做操作的表写入admin.py
from django.contrib import admin
from app01.models import *
admin.site.register(UserInfo)
admin.site.register(ClassList)
admin.site.register(Customer)
admin.site.register(Campuses)
(2)访问http://127.0.0.1:8000/index/
(3)用admin创建的用户密码为明文,想创建密文的密码必须用createsuperuser或者自己注册
(4)admin要求所有字段都不能为空,如果想为空需要添加black=True,
Null=true是数据库级别的black=true是admin工具级别的
- 当要渲染的是queryset对象或可迭代对象的时候,
(1) 可以通过循环的方式渲染
<td>{% for foo in customer.class_list.all %}
{% if not forloop.last %}
{{ foo }} ,
{% else %}
{{ foo }}
{% endif %}
{% endfor %}
</td>
(2) 也可以为model对象添加一个方法,调用方法来渲染
def get_classlist(self):
l=[]
for cls in self.class_list.all():
l.append(str(cls))
return mark_safe(",".join(l))
- 判断一个字段是否为空
字段名__isnull=True
9.百度颜色对照表
10.customer_obj = Customer.objects.get(id=id)