【发布时间】:2018-10-07 05:12:22
【问题描述】:
我是 Django 新手,我正在尝试使用 DRF 为文章发布数据键和值:
class ArticalMetaData(models.Model):
key = models.CharField()
value = models.CharField()
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id')
class Meta:
unique_together = ("content_type", "object_id", "key")
class MetaDataCreationSerializer(serializers.ModelSerializer):
def __init__(self, content_object, *args, **kwargs):
self.content_object = content_object
super(MetaDataCreationSerializer, self).__init__(*args, **kwargs)
class Meta:
model = MetaData
fields = ('key', 'value','content_object')
这是视图:
def create(self, request, pk=None):
Artical = self.get_object()
if request.method == 'POST':
serializer = MetaDataCreationSerializer(data=request.data, content_object=Artical)
if serializer.is_valid():
metadata = serializer.save()
metadata.content_object = Articla
metadata.save()
serializer = MetaDataSerializer(metadata)
return Response(serializer.data)
但这给了我这个错误:
Exception Type: IntegrityError
Exception Value:
null value in column "object_id" violates not-null constraint
【问题讨论】:
-
您可以包含您发布的数据吗?序列化程序中的 content_object 是什么?您能否包含您实际使用序列化程序的代码部分(视图)?
标签: python django api django-rest-framework