创建一个项目,创建了两个APP,一个是user,另外一个是note,分别在两个model里面创建两个数据库对接模型,在note,APP里面创建和user的对应关系一对多,在执行pyhton manage.py makemigrations 报错。django版本3.2.9
user中model代码如下:
from django.db import models
# Create your models here.
class User(models.Model):
username = models.CharField('用户名',max_length=30,unique=True)
password = models.CharField('密码',max_length=32)
create_time = models.DateTimeField('创建时间',auto_now_add=True)
update_time = models.DateTimeField('更新时间',auto_now=True)
note中model代码如下
from django.db import models
# Create your models here.
from detu_note.user.models import User
class Note(models.Model):
title = models.CharField('标题',max_length=100)
content = models.TextField
create_time = models.DateTimeField('创建时间',auto_now_add=True)
update_time = models.DateTimeField('更新时间',auto_now=True)
user = models.ForeignKey(User,on_delete=models.CASCADE)
ModuleNotFoundError: No module named 'detu_note.user'
怎么避免这个报错
我理解的是要用django 做两个不同的app , 但数据是共享的。
这种情况,提个建议供参考。
直接用pymysql 之类的库直接访问数据,数据表的关联性由 数据库去实现。否则跨app import 感觉折腾起来挺麻烦。
django就完成 views 的功能及跳转好了。 业务逻辑和数据逻辑,单独搞。
应该是你通过项目根地址导入的问题,注意是app,也就是通过from app.xxx import xxx的形式导入其他app内的内容
我感觉咱们的问题应该是一个,app的顺序引起的问题,user在文件结构上应该会在note的后面,所以你在makemigration的时候,note先加载但是user后加载就会这样