无法在Django中导入模型

k2arahey  于 2023-03-09  发布在  Go
关注(0)|答案(2)|浏览(155)

我尝试将我的模型文件导入到我的api.py文件中,但是,我收到此错误:

> from dashboard.models import Customer, Lines, Devices
> ModuleNotFoundError: No module named 'dashboard'

我的apps.py是:

from django.apps import AppConfig

class DashboardConfig(AppConfig):
    name = 'dashboard'

我的设置:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sessions',
    'dashboard'
]

我的模特:

from django.db import models

class Customer(models.Model
               ):
    account_name = models.CharField(default='', max_length=254, null=True, blank=True)
    accountNumber = models.CharField(default='', max_length=30, null=True, blank=True)
    accountType = models.CharField(default='', max_length=40, null=True, blank=True)
    allowDangerousExtensions = models.BooleanField(default=False)
    billingCycleDay = models.IntegerField(default=0)
    
    @property
    def customer_name(self):
        return (self.account_name)
    
    
class Lines(models.Model):
    accountId = models.CharField(default='', max_length=30, null=True, blank=True)
    deviceName = models.CharField(default='', max_length=10, null=True, blank=True)
    deviceTypeId = models.CharField(default='', max_length=100, null=True, blank=True)

    def __str__(self):
        return self.accountId()
    

class Devices(models.Model):
    uid = models.CharField(default='', max_length=30, null=True, blank=True)
    online = models.BooleanField(default=False)
    
    customer =  models.ForeignKey(Customer, blank=True, null=True, on_delete=models.CASCADE)

    def __str__(self):
        return self.name()

以及api.py:

from dashboard.models import Customer, Lines, Devices
def create_customer():
customer = Customer.objects.create()

但是我不能引用www.example.com文件中的模型api.py。我可以在我的www.example.com中引用它Admin.py但是api.py不起作用。
文件夹结构:

7kqas0il

7kqas0il1#

您可以通过键入以下命令导入类(模型),因为它们位于同一目录中

from .models import Customer, Lines, Devices

或者像这样直接使用它们:

models.Lines # for example
v9tzhpje

v9tzhpje2#

您可以尝试通过指定项目中模型文件的完整路径来使用绝对导入。

正如我所看到的,您的项目名称是“Albion“,因此它应该如下所示:

from Albion.dashboard.models import Customer, Lines, Devices

相关问题