Django Model Importerror: невозможно импортировать имя «Driver» из «driver.models» - PullRequest
0 голосов
/ 25 января 2020

У меня есть два приложения: автомобиль и водитель. Каждое транспортное средство может иметь 2 уникальных водителя в любой момент времени.

моя проблема: я не уверен, должно ли это быть многодетными или многотоновыми отношениями.

при попытке многотомных отношений (согласно приведенным ниже моделям ), я получаю ошибку во время makemigrations, утверждая, что не могу импортировать имя «Driver» из «driver.models»

driver.models.py

from django.db import models
from datetime import datetime
from vehicle.models import Vehicle

class DriverStatus(models.Model):
    status = models.CharField(max_length=200)
    def __str__(self):
        return f'{self.status}'

class Driver(models.Model):
    name = models.CharField(max_length=200)
    driver_num = models.IntegerField()
    profile_image = models.ImageField(default="default.jpg",upload_to="images")
    status = models.ForeignKey(DriverStatus, on_delete=models.CASCADE)
    current_vehicle = models.ManyToManyField(Vehicle)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    def __str__(self):
        return f'{self.name}'

vehicle.models.py

from django.db import models
from datetime import datetime
from driver.models import Driver


class VehicleStatus(models.Model):
    status = models.CharField(max_length=200)
    def __str__(self):
        return f'{self.status}'



class Vehicle(models.Model):
    vehicle_number = models.CharField(max_length=200)
    driver_main = models.ManyToManyField(Driver)
    driver_sec = models.ManyToManyField(Driver)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    def __str__(self):
        return f'{self.name}'

1 Ответ

1 голос
/ 25 января 2020

Это из-за циклического импорта вы получаете ошибку. Поэтому вам нужно либо изменить конфигурацию, либо удалить импорт и поместить драйвер в кавычки

driver_main = models.ManyToManyField("Driver" )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...