attributeError:'语言'对象没有属性。
我的模型看起来像这样:
首先具有用户配置文件
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'对象没有属性'lang_profofication'
编辑: 我的序列化器就是这样
class LanguageSerializer(serializers.ModelSerializer):
lang_proficiency = serializers.CharField(required=True)
name = serializers.CharField(required=True)
class Meta:
model = UserLanguage
fields = ('name', 'lang_proficiency')
,我对语言的有效载荷就是这样:
"languages" :[{"name":"arabic" ,"lang_proficiency":"FL"},{"name":"english","lang_proficiency":"FL"}],
My models look like these :
first have user profile
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")
then have a language many to many relation
class Language(models.Model):
name = models.CharField(max_length=50)
then have a through table to store this data
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,
)
now issue is when I am inserting data in this table like :
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)
I am getting error like:
AttributeError: 'Language' object has no attribute 'lang_proficiency'
EDIT:
My serializer is like this
class LanguageSerializer(serializers.ModelSerializer):
lang_proficiency = serializers.CharField(required=True)
name = serializers.CharField(required=True)
class Meta:
model = UserLanguage
fields = ('name', 'lang_proficiency')
And my payload for language is like this :
"languages" :[{"name":"arabic" ,"lang_proficiency":"FL"},{"name":"english","lang_proficiency":"FL"}],
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论