내 프로젝트에는 두 개의 모델이 있습니다. 모델 A와 B. 모델 B는 모델 A와 'OneToOne'관계가 있습니다. 모델 B에 대한 serializer 클래스를 ".create()"함수에 작성했습니다. 저장을 재정의해야하므로 모델 B를 저장하는 데 문제가 있습니다.() 함수는 슬러그 값을 삽입하기 위해 B 모델에서 작동합니다. 오류 :django restframework _ OneToOne field save()
저장() 예기치 않은 키워드 인수 'force_insert'
class A(models.Model):
address = models.Charfield(max_length=160)
class b(models.Model):
a = models.OneToOneField(AdIfo, related_name='ad_info', primary_key=True,
on_delete=models.CASCADE)
slug = models.SlugField(unique=True, db_index=True, blank=True)
def save(self):
self.slug ="%d%s" %(self.pk, slugify(self.title))
super(B, self).save()
serializers.py있어 문제는 당신이 동의하지 않은 것입니다
class ASerializer(serializers.ModelSerializer):
class Meta:
model = A
fields = "__all__"
class BSerilizer(serializers.ModelSerializer):
a = ASerializer(many=False, required=False, allow_null=True)
slug = serializers.SlugField(read_only=True)
class Meta:
model = B
fields = '__all__'
def create(self, validated_data):
info_data = validated_data.pop('ad_info')
A.objects.create(**info_data)
ad = B.objects.update_or_create(**validated_data)
A.objects.update_or_create(ad_info=adgame, **info_data)
ad.save()
return ad
코드를 제대로 복사/붙여 넣기 + 수정하지 않았습니다 (구문 강조 표시 참조). –