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'