这是我的models.py文件:
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class CategoryList(models.Model):
Category = models.CharField(max_length=200)
Cat_Img = models.ImageField(upload_to='cat_media')
Active = models.BooleanField(default=True)
class ImgDetails(models.Model):
Img = models.ImageField(upload_to='media')
Category = models.ForeignKey(CategoryList, default=1, on_delete=models.SET_DEFAULT, null=False)
keywords = models.CharField(max_length=255)
UserDetail = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
Valid = models.BooleanField(default=False)
UploadDate = models.DateTimeField(auto_now_add=True)
我试图用CategoryList
在ImgDetails
上添加一个外键约束。它抛出错误
from cam_project.cam_app.models import CategoryList
ModuleNotFoundError: No module named 'cam_project.cam_app'
我尝试导入from cam_project.cam_app.models import CategoryList
,但仍然没有任何进展。如有任何建议,我们将不胜感激。
如果您的models.py
在cam_app
中,您可以使用:
from .models import CategoryList
或者,如果你正在导入另一个应用程序的models.py,你也应该指定应用程序名称:
from .app.models import Model
确保包含cam_project
的目录必须在PYTHONPATH中。
您可以检查sys.path
。
要添加它,您可以:
export PYTHONPATH=<YOUR_DIR>:$PYTHONPATH
我认为错误不在models.py
中。您的外键约束运行良好。你似乎在其他文件中导入CategoryList
(我猜views.py
(在django中,绝对导入是相对于你的manage.py
的。所以我认为你的进口应该是
from cam_app.models import CategoryList