我想更改字段名称。在我的模型中,字段名称以前缀timesheet
开头。当我使用api
时,我必须使用timesheet
前缀。我想删除该前缀,而保留jobs
,clock_in_date
,clock_out_date
....如何重命名字段名称,以便从api正文发送数据时应包含无时间表的名称前缀
class TimesheetSerializer(serializers.ModelSerializer):
timesheet_hours = TimesheetHourSerializer(many=True, read_only=True)
class Meta:
model = TimesheetEntry
fields = [
'id',
'timesheet_jobs',
'timesheet_clock_in_date',
'timesheet_clock_in_time',
'timesheet_clock_out_date',
'timesheet_clock_out_time',
'timesheet_note',
'timesheet_hours',
]
Models.py
class TimesheetEntry(models.Model):
timesheet_users = models.ForeignKey(User, on_delete=models.CASCADE,related_name='timesheet_users')
timesheet_jobs = models.ForeignKey(Jobs, on_delete=models.CASCADE,related_name='timesheet_jobs', blank=True, null=True)
timesheet_clock_in_date = models.DateField()
timesheet_clock_in_time = models.TimeField()
timesheet_clock_on = models.DateTimeField(auto_now_add=True)
timesheet_clock_in_by = models.ForeignKey(User, on_delete=models.CASCADE,related_name='timesheet_user_clock_in_by')
timesheet_clock_out_date = models.DateField(blank=True, null=True)
timesheet_clock_out_time = models.TimeField(blank=True, null=True)
答案 0 :(得分:4)
class TimesheetSerializer(serializers.ModelSerializer):
timesheet_hours = TimesheetHourSerializer(many=True, read_only=True)
jobs = serializers.CharField(source='timesheet_jobs')
class Meta:
model = TimesheetEntry
fields = [
'id',
'jobs',
.......
]
您可以简单地使用它。这同样适用于写操作