Я хочу использовать файл модели из моей базы данных, импортировав его в views.py. Но я получаю сообщение об ошибке, когда вызываю класс из models.py.
ERROR: ImportError: cannot import name Vehicle
Мой путь:
+ vehicle
---> __init__.py
---> models.py
---> views.py
автомобиль/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'
Автомобиль/views.py
from vehicle.models import Vehicle
s = Vehicle.objects.all()
print s
Я упустил это из виду при написании поста. Я починил это. Ошибка все еще продолжается. @WillemVanOnsem
Это весь код ваших взглядов? Если нет, пожалуйста, предоставьте остальную часть, пожалуйста
Пробовали from .models import Vehicle?
у меня другая ошибка: from .models import Vehicle ValueError: Попытка относительного импорта в не-пакете @HigorRossato
да. У меня есть только эти коды, чтобы проверить, правильно ли работает база данных. @ХигорРоссато
Вы зарегистрировали свое приложение в INSTALLED_APPS?
да. я добавил этот ''vehicle.apps.vehicleConfig' в INSTALLED_APPS. это правда? @ХигорРоссато
Это действительно правильно






Если вы вызываете модель в поле зрения, вы можете вызвать ее напрямую
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 мы добавляем место, которое мы хотим включить при поиске модулей. Есть лучшие способы :)
Должно быть
from vehicle.models import Vehicle(со строчнойv)