【问题标题】:Cant import models.py in views.py无法在views.py中导入models.py
【发布时间】:2019-11-22 08:02:12
【问题描述】:

我想通过将模型文件导入views.py 来使用我的数据库中的模型文件。但是当我从models.py 调用课程时出现错误。

ERROR: ImportError: cannot import name Vehicle

我的路径:

+ vehicle
---> __init__.py
---> models.py
---> views.py

vehicle/models.py

from __future__ import unicode_literals
from django.db import models

class Vehicle(models.Model):
    id = models.BigAutoField(primary_key=True)
    plate = models.TextField()
    driver = models.ForeignKey(Driver, models.DO_NOTHING)

    class Meta:
        managed = False
        db_table = 'vehicle'

Vehicle/views.py

from vehicle.models import Vehicle
s = Vehicle.objects.all()
print s

【问题讨论】:

  • 应该是from vehicle.models import Vehicle(小写v
  • 我在写帖子时忽略了它。我修好了它。错误还在继续。 @WillemVanOnsem
  • 这是您观点的全部代码吗?如果没有,请提供其余部分,请
  • 你试过from .models import Vehicle吗?
  • 我还有一个错误:from .models import Vehicle ValueError: Attempted relative import in non-package @HigorRossato

标签: python django python-2.7 django-models


【解决方案1】:

如果是在view中调用model,可以直接调用

from model import Vehicles

如果你想有一个完整的路径,你可以在你的路径上添加车辆的位置

import sys
sys.path.insert(0, 'path_to_vehicle_folder')

from vehicles.model import Vehicles

你现在的做法是假设你的执行发生在车辆目录之外

vehicles\
    __init__.py
    model.py
    view.py
this.py

this.py 中,您可以照常导入。

您始终可以执行print(sys.path),以查看您的python 将在哪里查找包/模块:) 使用sys.path.insert,我们添加了一个我们想要在查找模块时包含的位置。有更好的方法:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 2021-08-29
    • 2016-04-06
    相关资源
    最近更新 更多