手记

使用Django的xadmin作为php后台管理系统遇到的问题(一)

开发环境
  • python3.6
  • pycharm
  • Django11.3
遇到的问题
  • NameError:name 'ImageSum' is not defined

解决:
把ImgeSum表移动到最上面,Django是按模型顺序识别的,BannerItem前如果没有先引入ImageSum当然会报错

  • str returned non-string (type int)
    解决:
    参考资料
    model返回里面添加str()强制转换
  • Unknown column 'ModelName.id' in 'field list'"
    把数据库删除了,makemigrations也删除。重新makemigrations
  • No module named 'xadmin'
    imooc提问
  • HINT: Add or change a related_name argument to the definition for 'UserProfile.user_permissions' or 'User.user_permissions'.
    这一节是用自定义的UserProfile覆盖掉auth_user
    是因为少了AUTH_USER_MODEL = "users.UserProfile"这一步才报HINT错误
    正确步骤
    创建users app,注册users app,把AUTH_USER_MODEL = "users.UserProfile"也写到setting里面。


    再继承AbastractUser

    使用ImageField必须要安装Pillow
    pip install Pillow
    做users这个app的makegrations
    makegrations Users
    migrate users
    出现这个错误还可以是
    一个模型里面外键关联的模型相同

    这样子解决


    成果:

    原来的auth_user等表没了,变成profile表

    其它注意事项
  • 只要更新了模型,就必须更新数据库
  • 添加外键,django就会自动添加_id
  • 还没写完
1人推荐
随时随地看视频
慕课网APP

热门评论

ERRORS:

auth.Group.permissions: (fields.E340) The field's intermediary table 'auth_group_permissions' clashes with the table name of 'desk1.AuthGro

upPermissions'.

auth.User.groups: (fields.E340) The field's intermediary table 'auth_user_groups' clashes with the table name of 'desk1.AuthUserGroups'.

auth.User.user_permissions: (fields.E340) The field's intermediary table 'auth_user_user_permissions' clashes with the table name of 'desk1

.AuthUserUserPermissions'.

请问你这个问题解决了吗

查看全部评论