我正在为我的serializers
使用django rest框架。我需要创建一个web服务,它将三个表中的字段组合起来并给出一个json。在
我有以下三种型号:
class FlightSchedule(models.Model):
tail_number = models.ForeignKey(TailNumber, null=False)
flight_number = models.CharField(max_length=30, null=False)
flight_group_code = models.ForeignKey(FlightGroup, null=False)
origin_port_code = models.ForeignKey(Port, null=False, related_name="Origin")
destination_port_code = models.ForeignKey(Port, null=False, related_name="Destination")
flight_departure_time = models.TimeField()
start_date = models.DateField()
end_date = models.DateField()
# route_id = models.CharField(max_length=30, null=True)
def __unicode__(self):
return u'%s' % self.flight_number
class Meta:
verbose_name_plural = "Flight Schedule"
class FlightScheduleDetail(models.Model):
flight_date = models.CharField(max_length=30, null=False)
# tail_number = models.ForeignKey(FlightSchedule, null=False, related_name="tail_number_schedule")
flight_number = models.ForeignKey(FlightSchedule, null=False, related_name="flight_number_schedule")
route_id = models.CharField(max_length=30, null=False, unique=True)
flight_status = models.ForeignKey(Status, null=True, default=1)
def __unicode__(self):
return u'%s' % self.route_id
class Meta:
verbose_name_plural = "Flight Schedule Details"
class LegDetail(models.Model):
route_id = models.ForeignKey(FlightScheduleDetail, null=False, related_name="route_id_leg_detail")
origin_port_code = models.ForeignKey(Port, null=False, related_name="Origin_leg")
destination_port_code = models.ForeignKey(Port, null=False, related_name="Destination_leg")
sequence_number = models.IntegerField()
def __unicode__(self):
return u'%s' % self.route_id + " > " + str(self.sequence_number)
class Meta:
verbose_name_plural = "Flight Leg Details"
我需要以下格式的json响应:
^{pr2}$序列化程序:
class LegDeatilSerializer(serializers.ModelSerializer):
class Meta:
model = LegDetail
fields = '__all__'
class FlightScheduleSerializer(serializers.ModelSerializer):
tail_number_str = serializers.CharField(source='tail_number.tail_number', read_only=True)
origin_str = serializers.CharField(source='origin_port_code.port_code', read_only=True)
destination_str = serializers.CharField(source='destination_port_code.port_code', read_only=True)
route_id_leg_detail = LegDeatilSerializer(many=True)
class Meta:
model = FlightSchedule
fields = ['tail_number_str', 'origin_str', 'destination_str', 'route_id_leg_detail']
class FlightScheduleMainSerializer(serializers.ModelSerializer):
# flight_number_str = serializers.CharField(source='flight_number.flight_number', read_only=True)
# flight_number_schedule = FlightScheduleSerializer(many=True)
class Meta:
model = FlightScheduleDetail
fields = ['flight_date', 'route_id']
目前没有回答
相关问题 更多 >
编程相关推荐