我最近在尝试着做DRF,我的项目有下面这个问题要解决。
我有两个 型号
class JobsMaster(models.Model):
job_id = models.CharField(max_length=128, unique=True)
job_name = models.CharField(max_length=128)
scheduled_time = models.CharField(max_length=128)
args = models.TextField()
interval = models.CharField(max_length=50)
repeat = models.CharField(max_length=100)
class JobProcessDetails(models.Model):
job_id = models.ForeignKey('JobsMaster')
sequence = models.IntegerField()
step_name = models.CharField(max_length=128)
records = models.IntegerField(null=True,blank=True)
created_by = models.CharField(max_length=155,default='system')
created_on = models.DateTimeField(auto_now_add=True)
class Meta:
unique_together = (('job_id', 'sequence'),)
通讯员 序列器
class JobsMasterSerializer(serializers.ModelSerializer):
class Meta:
model = JobsMaster
fields = '__all__'
class JobProcessDetailsSerializer(serializers.ModelSerializer):
class Meta:
model = JobProcessDetails
fields = '__all__'
其 浏览次数
class JobsMasterViewSet(viewsets.ModelViewSet):
queryset = JobsMaster.objects.all()
serializer_class = JobsMasterSerializer
filter_fields = ('job_id',)
class JobProcessDetailsViewSet(viewsets.ModelViewSet):
queryset = JobProcessDetails.objects.all()
serializer_class = JobProcessDetailsSerializer
filter_fields = ('job_id','sequence',)
我不知道这是否是构建viewsets和serializer的正确方法,但它为我工作。
我想写一个GET请求,从UI中获取数据。JobProcessDetails
的数据,其中包括相关的 JobsMaster
表也是如此。
例如,响应数据应该包含以下字段。
job_id : xxxxx
sequence : xxxx
step_name : 'xxxx'
records : xxxx
created_by : 'xxxxx'
created_on : dd/mm/yyyy
job_id__job_name : 'xxxxx'
job_id__scheduled_time : 'xxxxx'
job_id__args : 'xxxxx'
job_id__interval : 'xxxxx'
job_id__repeat : 'xxxxx'
有没有什么办法可以让我调整一些东西,用一个GET请求就可以得到这个东西。
像这样尝试
class JobProcessDetailsSerializer(serializers.ModelSerializer):
job_id = JobsMasterSerializer(read_only=True)
class Meta:
model = JobProcessDetails
fields = [
'job_id '
'sequence'
'step_name'
'records'
'created_by'
'created_on'
]