win 7 下的Django项目 (3)--代码模型类错误总结

  1. 在项目文件夹下新建pathon包,取名为db,存放抽象模型类(模型的Meta类里添加abstract=True元数据项,就可以将一个模型转换为抽象基类。Django不会为这种类创建实际的数据库表,它们也没有管理器,不能被实例化也无法直接保存,它们就是用来被继承的。)。
  2. 在db包内创建抽象模型类:
from django.db import models

class BaseModel(models.Model):
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='CreatedTime')
    update_time = models.DateTimeField(auto_now=True, verbose_name='UpdatedTime')
    is_delete = models.BooleanField(default=False, verbose_name="DeletedTime")
    
    class Meta:
        abstract =True
  1. 在apps包内的models.py编写模型类。
  2. 在编写过程中如果需要用到富文本框,需要在shell里安装
pip install django-tinymce

然后在项目文件夹里的settings.py注册应用名的参数里把tinymce当成应用名添加进去。
接着在models.py中导入就可以用了

from tinymce.models import HTMLField

模型导入错误总结:
a) https://www.cnblogs.com/noplablem-wangzhe0635/p/10021652.html 中的1,4和5
4.ImportError: No module named ‘PIL’(pillow可用于验证码)

C:\Users\zte>pip3 install pillow
Collecting pillow
Using cached 

https://files.pythonhosted.org/packages/b9/ba/43f2f2dd60f304d8563af82ecd4822ff0b57ddfd71631c407fce69da84d1/Pillow-5.4.1-cp35-cp35m-win_amd64.whl
Installing collected packages: pillow
Successfully installed pillow-5.4.1

5.Django继承AbstractUser新建User Model时出现fields.E304错误

auth.User.groups: (fields.E304) Reverse accessor for ‘User.groups’ clashes with reverse accessor for ‘User.groups’.
HINT: Add or change a related_name argument to the definition for ‘User.groups’ or ‘User.groups’.
auth.User.user_permissions: (fields.E304) Reverse accessor for ‘User.user_permissions’ clashes with reverse accessor for ‘User.user_permissions’.
HINT: Add or change a related_name argument to the definition for ‘User.user_permissions’ or ‘User.user_permissions’.
users.User.groups: (fields.E304) Reverse accessor for ‘User.groups’ clashes with reverse accessor for ‘User.groups’.
HINT: Add or change a related_name argument to the definition for ‘User.groups’ or ‘User.groups’.
users.User.head_url: (fields.E210) Cannot use ImageField because Pillow is not installed.
HINT: Get Pillow at https://pypi.python.org/pypi/Pillow or run command “pip install Pillow”.
users.User.user_permissions: (fields.E304) Reverse accessor for ‘User.user_permissions’ clashes with reverse accessor for ‘User.user_permissions’.
HINT: Add or change a related_name argument to the definition for ‘User.user_permissions’ or ‘User.user_permissions’.

解决方案:

需要在setting中重载AUTH_USER_MODEL

AUTH_USER_MODEL = ‘users.UserProfile’
users:你的app

UserProfile:model
b) https://code.djangoproject.com/ticket/28691 在应用文件夹下的urls.py 需要加上app_name
c) 在引用外键的时候,新版本需要指明on_delete的值,因为我用的是models.SET_NULL,所以需要同时指定允许值为空null=True。又因为存在多表引用同一个表的关系(多个一对多的表),所以需要指定唯一的related_name。在一对多查询时可以用到这个属性。

class Address(BaseModel):
    '''地址模型类'''
    user1 = models.ForeignKey('User',related_name='user_address_user', null=True, on_delete=models.SET_NULL,verbose_name='所属账户')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值