0

这是我的 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)

我正在尝试在ImgDetailswith上添加外键约束CategoryList。它正在抛出错误

   from cam_project.cam_app.models import CategoryList
ModuleNotFoundError: No module named 'cam_project.cam_app'

我尝试导入from cam_project.cam_app.models import CategoryList但仍然没有任何进展。任何建议,将不胜感激。

4

3 回答 3

0

确保包含的目录cam_project必须在 PYTHONPATH 中。

你可以检查它检查 sys.path

要添加它,您可以:

export PYTHONPATH=<YOUR_DIR>:$PYTHONPATH

于 2020-07-15T07:33:11.607 回答
0

我认为错误不在models.py. 您的外键约束工作正常。看来您正在导入CategoryList其他文件(我最好的猜测views.py)在 django 中,绝对导入是相对于您的manage.py. 所以我认为你的进口应该是

from cam_app.models import CategoryList
于 2020-07-15T09:46:39.653 回答
0

如果您models.py在其中,cam_app您可以使用:

from .models import CategoryList

或者如果您正在导入另一个应用程序的 models.py,您还应该指定应用程序名称:

from .app.models import Model
于 2020-07-15T07:25:43.873 回答