django - TypeError:create() 为关键字参数“名称”获取了多个值
问题描述
我目前在使用 Django 休息框架执行嵌套时遇到问题,我认为问题出在我的循环中,但无法理解我已经完成了大部分答案,但没有任何帮助。任何帮助,将不胜感激。提前致谢!!
模型
class Category(models.Model):
name = models.CharField(max_length=36, unique=True)
class sub_category(models.Model):
parentCategory = models.ForeignKey(Category, blank=True, null=True,
related_name='subcategories',
on_delete=models.CASCADE)
name = models.CharField(max_length=36, unique=True)
class childern(models.Model):
parentCategory = models.ForeignKey(sub_category, blank=True, null=True,
related_name='subcategories',
on_delete=models.CASCADE)
name = models.CharField(max_length=36, unique=True)
封口机
class ChildernSerializer(serializers.ModelSerializer):
id = serializers.PrimaryKeyRelatedField(read_only=True)
class Meta:
model = childern
fields = ['name',
'id',]
class SubCategorySerializer(serializers.ModelSerializer):
id = serializers.PrimaryKeyRelatedField(read_only=True)
subcategories = ChildernSerializer(many=True)
class Meta:
model = sub_category
fields = ['name',
'subcategories',
'id',]
def create(self, validated_data):
sub_cat = validated_data.pop('subcategories')
name = Category.objects.create(**validated_data)
for cat in sub_cat:
sub_category.objects.create(**cat, name=name)
return name
class CategorySerializer(serializers.ModelSerializer):
subcategories = SubCategorySerializer(many=True)
class Meta:
model = Category
fields = [
'name',
'subcategories',
]
def create(self, validated_data):
sub_cat = validated_data.pop('subcategories')
name = Category.objects.create(**validated_data)
for cat in sub_cat:
sub_category.objects.create(**cat, name=name)
return name
解决方案
您需要name
从cat
数据中弹出 ,否则名称将同时出现在参数中cat
和通过name=name
参数:
def create(self, validated_data):
sub_cat = validated_data.pop('subcategories')
name = Category.objects.create(**validated_data)
for cat in sub_cat:
cat.pop('name', None)
sub_category.objects.create(**cat, name=name)
return name
推荐阅读
- excel - 如何加入单词“Sheet”和整数以形成工作表代号
- c - 在不使用 strtok 的情况下返回 c 中的剩余字符串
- java - 如何从 Spotify API 获取访问令牌?[爪哇]
- laravel - Laravel 7 - Eloquent ORM 在使用一对一关系时从 2 个表中获取数据
- android - ViewPager2:监听 setCurrentItem() 完成
- java - 指令被跳过,这里有没有我没有看到的错误?
- javascript - 在 FireStore 中查询空字段
- java - Glassfish4:由于war文件中WEB-INF/lib/jackson-*.jar中的Java9 module-info.class而出现异常?
- python - Tensorboard 仅显示嵌入层的 8 个节点
- python - 你如何使用从`ImageFont.getmask`返回的`Image.core`?