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)
Вернуться на верх