加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – Django内置“用户”模型的多对多关系

发布时间:2020-12-20 13:32:29 所属栏目:Python 来源:网络整理
导读:脚本 我有一个基本的Django应用程序,其中用户(django的模型中内置的身份验证)和报告具有多对多的关系. 问题 Django没有创建相应的表来处理这种关系.我的应用程序称为报告.在尝试创建报告并为其分配用户时,管理系统中存在错误.它尝试查询表reports_report_use
脚本

我有一个基本的Django应用程序,其中用户(django的模型中内置的身份验证)和报告具有多对多的关系.

问题

Django没有创建相应的表来处理这种关系.我的应用程序称为报告.在尝试创建报告并为其分配用户时,管理系统中存在错误.它尝试查询表reports_report_users,但由于它不存在而失败.

models.py代码

from django.db import models
 from django.contrib.auth.models import User
 class Report(models.Model):
     name = models.CharField(max_length=30,blank=False)
     users = models.ManyToManyField(User,related_name='reports')
     def __unicode__(self):
         return self.name

试图解决方案

>使用此链接作为参考:https://docs.djangoproject.com/en/1.4/topics/db/examples/many_to_many/
>运行manage.py syncdb大约300次 – 确定,只有一次,但没有错误,并且在检查SQLite数据库时没有创建其他表:(

解决方法

在第一次同步后,您似乎已添加到报告模型中.因此,您正在处理迁移,django本身并不这样做.

首先,检查sql输出,确保存在多对多关系的create table指令.

python manage.py sqlall

假设问题是这是一个迁移,django本身不处理,你有三个选择:
1)删除此应用程序的所有数据库表,然后再次运行syncdb.
2)手动创建表(相当容易从sqlall命令复制粘贴create sql)
3)开始使用像South这样的迁移框架.

从长远来看,你会欣赏南方学习的投资.在短期内,删除DB文件是最快的.-

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读