ImportError: невозможно импортировать имя 'Profile' из частично инициализированного модуля 'profiles.models' (скорее всего, из-за циклического импорта)
Я импортирую Profile из profiles.models в meta.models, но выдает ошибку темы. Не могу найти cutom решение, хотя есть похожие проблемы с разными решениями, но в моем случае не работает.
Вот мои профили.модели
from django.db import models
from django.contrib.auth.models import User
from meta.models import Designation
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, help_text = 'Foreign Key From User')
avatar = models.ImageField(upload_to='avatars', default='no_picture.png')
designation = models.ForeignKey(Designation, on_delete = models.CASCADE, null=True)
def __str__(self):
return str(self.user)
Вот мой meta.models, где я импортирую из profiles.models
from django.db import models
from profiles.models import Profile
class Designation(models.Model):
DesignationName = models.CharField(max_length = 20, blank=True,null= True)
DesignationScale = models.PositiveIntegerField()
def __str__(self):
return str(self.DesignationName)
class DutyPlaceSensitivity(models.Model):
sensitivity = models.CharField(max_length = 12, blank=True, null = True)
def __str__(self):
return str(self.sensitivity)
class DutyPlaces(models.Model):
DutyPlaceName = models.CharField(max_length =20, blank = True, null = True)
sensitivity = models.ForeignKey(DutyPlaceSensitivity, on_delete=models.CASCADE)
class ActingAs(models.Model):
acting_as_title = models.CharField(max_length = 12)
def __str__(self):
return str(self.acting_as_title)
class PlaceOfPosting(models.Model):
UserProfile = models.OneToOneField(Profile, on_delete=models.CASCADE)
acting_as = models.ForeignKey(ActingAs, on_delete = models.CASCADE)
def __str__(self):
return f"{self.UserProfile} - {self.acting_as}"
class TaskType(models.Model):
taskTypeName = models.CharField(max_length=20)
taskDescription = models.TextField(null = True, blank=True)
def __str__(self):
return str(self.taskTypeName)
class TaskPriority(models.Model):
priority_title = models.CharField(max_length = 12)
def __str__(self):
return str(self.priority_title)
class Tasks(models.Model):
task_name = models.CharField(max_length=120)
task_description = models.TextField()
task_type = models.ForeignKey(TaskType, on_delete=models.CASCADE)
assign_by = models.ManyToManyField(Profile, on_delete = models.CASCADE)
assign_to = models.ManyToManyField(Profile, on_delete = models.CASCADE)
task_priority = models.ForeignKey(TaskPriority, on_delete = models.CASCADE)
#time_stamp = models.DateField()
created = models.DateTimeField(auto_add_now = True)
updated = models.DateTimeField(auto_add = True)
def __str__(self):
return f"{self.task_name} --{self.assign_by}"
Для объявления целевой модели внешнего ключа можно использовать строки, синтаксис: "app.Model".
class PlaceOfPosting(models.Model):
UserProfile = models.OneToOneField("profiles.Profile", on_delete=models.CASCADE)