Django rest framework Django REST-将有效数据与无效数据分离,并将前者序列化为many=True
我经常为我的应用程序设计一个RESTAPI。 在我的一个视图中,我试图在初始化序列化程序对象时使用Django rest framework Django REST-将有效数据与无效数据分离,并将前者序列化为many=True,django-rest-framework,django-serializer,Django Rest Framework,Django Serializer,我经常为我的应用程序设计一个RESTAPI。 在我的一个视图中,我试图在初始化序列化程序对象时使用many=True,以便一次批量插入多行。问题是,如果数据集中的一条记录无效,序列化程序的是有效的()方法返回False,从而拒绝整个数据集。而期望的行为是插入有效记录并忽略无效记录。 我已经使用以下代码成功地实现了这一点,但我有一种可怕的感觉,这是垃圾代码,REST框架有一种本机方式来实现这一点 下面的代码(我认为垃圾代码:)):< /P> 序列化程序.py class MySerializer(
many=True
,以便一次批量插入多行。问题是,如果数据集中的一条记录无效,序列化程序的是有效的()
方法返回False
,从而拒绝整个数据集。而期望的行为是插入有效记录并忽略无效记录。
我已经使用以下代码成功地实现了这一点,但我有一种可怕的感觉,这是垃圾代码,REST框架有一种本机方式来实现这一点
下面的代码(我认为垃圾代码:)):< /P> 序列化程序.py
class MySerializer(serializers.ModelSerializer):
class Meta:
model = CalendarEventAttendee
fields = '__all__'
view.py
def my_view(request):
validated_data = []
# Separate valid data from invalid
for record in request.data:
if MySerializer(data = record).is_valid():
validated_data.append(record)
# bulk_insert valid data
serializer = MySerializer(data=validated_data, many=True)
if serializer.is_valid():
serializer.save()
有人能提出更好的方法吗