AttributeError: объект 'Language' не имеет атрибута 'lang_proficiency'

Мои модели выглядят следующим образом :

сначала заведите профиль пользователя

class UserProfile(models.Model):
    """user profiling """
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    location = models.CharField(max_length=255)
    languages = models.ManyToManyField('Language', through="UserLanguage")

тогда есть язык отношения многие ко многим

class Language(models.Model):
    name = models.CharField(max_length=50)

тогда у вас есть сквозная таблица для хранения этих данных

class UserLanguage(models.Model):
    language = models.ForeignKey(Language, on_delete=models.CASCADE)
    user_profile = models.ForeignKey(UserProfile, on_delete=models.CASCADE)

    class ProficiencyStatus(models.TextChoices):
        FLUENT = 'FL', _('FLUENT')
        CONSERVATION = 'CT', _('CONSERVATIONAL')

    lang_proficiency = models.CharField(
        max_length=2,
        choices=ProficiencyStatus.choices,
        default=ProficiencyStatus.FLUENT,
    )

Теперь проблема в том, что когда я вставляю данные в эту таблицу, например :

language_obj = Language.objects.create(name=language.get('name'))
user_lang_obj = UserLanguage.objects.create(language=language_obj,
                                                            user_profile=user_profile, lang_proficiency='FL')
   
user_profile.languages.add(language_obj)

Я получаю ошибку типа:

AttributeError: 'Language' object has no attribute 'lang_proficiency'

Вернуться на верх