我正在尝试使自定义序列化程序工作。不能使用模型序列化器,因为我将数据保存到多个模型中。这是我的代码:
class RushSerializer(serializers.Serializer):
keyword = serializers.IntegerField(read_only=True)
url = serializers.URLField()
def save(self):
keyword = self.validated_data['keyword']
url = self.validated_data['url']
Url1.objects.create(keyword=keyword, url=url)
我输入的数据如下:
nov = {'url': 'https://domain.com/'}
nov['keyword'] = id
serializer = RushSerializer(data=nov)
它返回给我这个错误:
/ admin / keywords / kw / add /
中的KeyError'关键字'
这是模型本身:
class Url1(models.Model):
keyword = models.ForeignKey(KW)
url = models.URLField()
我的代码出了什么问题?我几乎尝试了anything from here,但似乎无法使其发挥作用。
编辑:为了澄清,如果我使用模型序列化器并且这样做,它就可以工作:
class Meta:
model = Url1
fields = ('keyword', 'url')
因此问题不在输入100%,而在串行器本身。
ValueError at / admin / keywords / kw / add /无法分配" 104": " Url1.keyword"必须是" KW"实例