【发布时间】:2022-01-26 16:47:24
【问题描述】:
我在模型中使用了两个外键。我想在我们发出我尝试过的获取请求时显示这些字段名称,但它只工作一个字段而不是其余一个。 模型.py
class Organization(models.Model):
code = models.CharField(max_length=25, null=False, unique=True)
name = models.CharField(max_length=100, null=False)
location = models.ForeignKey(Location, on_delete=models.RESTRICT)
mol_number = models.CharField(max_length=100)
corporate_id = models.CharField(max_length=100)
corporate_name = models.CharField(max_length=100)
routing_code = models.CharField(max_length=100)
iban = models.CharField(max_length=100)
description = models.TextField()
total_of_visas = models.IntegerField(null=False, default=0)
base_currency = models.ForeignKey(Currency, on_delete=models.RESTRICT)
def __str__(self):
return self.name
序列化器.py
class OrganizationSerializer(serializers.ModelSerializer):
location = serializers.CharField(read_only=True, source="location.name")
base_currency = serializers.CharField(read_only=True, source="base_currency.currency")
location_id = serializers.IntegerField(write_only=True, source="country.id")
base_currency_id = serializers.IntegerField(write_only=True, source="base_currency.id")
class Meta:
model = Organization
fields = ["id", "name", "location", "mol_number", "corporate_id", "corporate_name",
"routing_code", "iban", "description", "total_of_visas", "base_currency",
"location_id", "base_currency_id"]
def create(self, validated_data):
...
def update(self, instance, validated_data):
...
我怎样才能访问这两个字段???.. Anyhelp Apppreciable..
【问题讨论】:
-
这些是
write_only? -
通常您不应为
location_id和base_currency_id指定source=:已经有一个具有该名称的“隐藏”字段,因此您可以省略这些名称的source=...。 -
好的。我删除了那个。但是我想同时访问 location 和 base_currency 但是当我发出获取请求时我得到了除 base_currency 之外的所有数据..
标签: serialization django-rest-framework