我想使用NewVariationSerializer序列化程序发布到NewVariation模型。我正在使用Django REST框架进行批量创建,如图here所示。
我的问题是,我需要ContWindowSerializer中的ID为只读,但无法使用-window_id = data['Cont_window']['id']
在父级序列化程序的create方法中访问它>
class ContWindowSerializer(serializers.ModelSerializer): """Serializes the Cont Window model.""" id = HashidSerializerCharField( source_field='Conts.ContWindow.id', read_only=True, ) Cont = ContSerializer() period_dates = DateRangeField() start_time = serializers.TimeField(format='%H:%M') end_time = serializers.TimeField(format='%H:%M') class Meta: model = models.ContWindow fields = ( 'id', 'Cont', 'period_dates', 'start_time', 'end_time', ) class NewVariationSerializer(serializers.ModelSerializer): """Serializes the New Variation model.""" id = HashidSerializerCharField( source_field='Conts.NewVariation.id', read_only=True, ) Cont_window = ContWindowSerializer() reason = serializers.CharField(source='get_reason_display') start_datetime = serializers.DateTimeField(format='%Y-%m-%d %H:%M:%S') end_datetime = serializers.DateTimeField(format='%Y-%m-%d %H:%M:%S') class Meta: model = models.NewVariation fields = ( 'id', 'capacity', 'reason', 'Cont_window', 'start_datetime', 'end_datetime', ) def create(self, data): """Handle New variation creation.""" window_id = data['Cont_window']['id'] Cont_window = models.ContWindow.objects.get(id=window_id) data['Cont_window'] = Cont_window return super().create(data)
[请让我知道如何解决此问题,或者是否有更好的解决方法。如果我可以在没有get查询的情况下将ContWindowSerializer对象提取到create方法中,那就太好了。
我想使用NewVariationSerializer序列化程序发布到NewVariation模型。我正在使用Django REST Framework进行批量创建,如下所示。我的问题是,我需要在ContWindowSerializer中使用id ...
尝试从initial_data