【发布时间】:2022-08-08 00:29:42
【问题描述】:
我必须使用此视图创建一个新的 Chat 对象:
class ChatListCreateView(ListCreateAPIView):
permission_classes = [IsAuthenticated]
serializer_class = ChatSerializer
def get_queryset(self):
data = Chat.objects.filter(
Q(employees=self.request.user) | Q(created_by=self.request.user)).distinct()
return data
它使用的序列化程序是:
class ChatSerializer(serializers.ModelSerializer):
created_by = SimpleEmployeeSerializer(read_only=True)
employees = SimpleEmployeeSerializer(many=True, read_only=True)
title = serializers.CharField(max_length=255)
def create(self, validated_data):
\"\"\"
Creates a new Chat and adds the m2m employees to it
\"\"\"
# Create and save the chat
chat = Chat.objects.create(
created_by=self.context[\'request\'].user,
title=validated_data[\'title\'],
)
# Add the employees to the chat
validated_employees = validated_data.pop(\'employees\')
for user_id in validated_employees:
employee = Employee.objects.get(id=user_id)
chat.employees.add(employee)
return chat
我的问题是 SimpleEmployeeSerializer 需要一个 user 对象,但我正在提交一个 employees 数组:
{
\"title\": \"fwef\",
\"employees\": [
{
\"id\": \"8\"
},
{
\"id\": \"30\"
}
]
}
在验证之前,我可以实施什么方法从这些 ID 中获取对象?
标签: python django django-rest-framework django-serializer