python 如何防止用户在Django Rest中更改某些字段?

omjgkv6w  于 2023-09-29  发布在  Python
关注(0)|答案(2)|浏览(103)

我的Django REST应用程序有一个实体,在创建/更新过程中,一些字段由后端设置,而不是由用户设置,但用户仍然可以提交请求来更新这些字段。

仅允许后台更改的字段:

  1. by_backend_only = [
  2. "company",
  3. "schedule_format",
  4. "file_url",
  5. "is_valid",
  6. "err_msg",
  7. "total_flights"
  8. }

序列化器

  1. class ScheduleSerializer(ModelSerializer):
  2. class Meta:
  3. model = RP_Schedule
  4. fields = [
  5. "id",
  6. "name", "season", "airport", "company",
  7. "schedule_type", "schedule_format",
  8. "file_url", "err_msg", "is_valid", "total_flights",
  9. "date_range_start", "date_range_end",
  10. ]

如何防止用户更改这些字段,但将它们保留在序列化程序中以创建/更新实体?

lbsnaicq

lbsnaicq1#

您可以添加

  1. class ScheduleSerializer(ModelSerializer):
  2. class Meta:
  3. model = RP_Schedule
  4. fields = [
  5. "id",
  6. "name", "season", "airport", "company",
  7. "schedule_type", "schedule_format",
  8. "file_url", "err_msg", "is_valid", "total_flights",
  9. "date_range_start", "date_range_end",
  10. ]
  11. read_only_fields = ["date_range_start", "date_range_end",]

有关更多详细信息,请参阅此处的文档示例

1szpjjfi

1szpjjfi2#

创建多个序列化程序,一个用于创建,另一个用于更新,另一个用于阅读

相关问题