私は住んでいるコンドームのための簡単なデータベースを作成しています。人、ユニット、ユニットタイプ(住居と駐車スペース)、および単価テーブル人とユニットとの多対多の関係) - 駐車スペースを借りている間に、1人が「家」のユニットタイプの所有者になることがあります。データの代わりにオブジェクトを返すDjango RESTフレームワークシリアライザ
class PersonViewSet(viewsets.ModelViewSet):
queryset = Person.objects.all()
serializer_class = PersonSerializer
class UnitHolderTypeViewSet(viewsets.ModelViewSet):
queryset = UnitHolderType.objects.all()
serializer_class = UnitHolderTypeSerializer
class UnitViewSet(viewsets.ModelViewSet):
queryset = Unit.objects.all()
serializer_class = UnitSerializer
class UnitHolderViewSet(viewsets.ModelViewSet):
queryset = UnitHolder.objects.all()
serializer_class = UnitHolderSerializer
class UnitTypeViewSet(viewsets.ModelViewSet):
queryset = UnitType.objects.all()
serializer_class = UnitTypeSerializer
これは私のシリアライザです::これは私の見解である
class Person(models.Model):
first_name = models.CharField(max_length=30, null=False)
last_name = models.CharField(max_length=30, null=False)
phone = models.CharField(max_length=20)
email = models.EmailField(max_length=20)
class UnitType(models.Model):
description = models.CharField(max_length=30)
class Unit(models.Model):
unit_number = models.IntegerField(null=False, unique=True)
unit_type = models.ForeignKey(UnitType, null=False)
unitholders = models.ManyToManyField(Person, through='UnitHolder')
class UnitHolderType(models.Model):
description = models.CharField(max_length=30)
class UnitHolder(models.Model):
person = models.ForeignKey(Person)
unit = models.ForeignKey(Unit)
unitholder_type = models.ForeignKey(UnitHolderType)
:
この
は私のモデルであるclass UnitSerializer(serializers.ModelSerializer):
unit_type = serializers.SlugRelatedField(
queryset=UnitType.objects.all(), slug_field='description'
)
class Meta:
model = Unit
fields = ('unit_number', 'unit_type', 'unitholders')
class UnitTypeSerializer(serializers.ModelSerializer):
class Meta:
model = UnitType
class PersonSerializer(serializers.ModelSerializer):
class Meta:
model = Person
class UnitHolderSerializer(serializers.ModelSerializer):
person = serializers.PrimaryKeyRelatedField(many=False, read_only=True)
unit = serializers.PrimaryKeyRelatedField(many=False, read_only=True)
class Meta:
model = UnitHolder
fields = ('person', 'unit', 'unitholder_type')
class UnitHolderTypeSerializer(serializers.ModelSerializer):
class Meta:
model = UnitHolderType
問題:
私は照会/ unitsエンドポイントl IKE以下:
u = requests.get('http://localhost:8000/units').json()
私の応答は次のようになります。
[{'unit_type': 'Home', 'unit_number': 614, 'unitholders': [1]}]
私は戻って欲しいことは、このようなものです:
[
{
'unit_type': 'Home',
'unit_number': 614,
'unitholders': [
{
'id: 1,
'first_name': 'myfirstname',
'last_name': 'mylastname',
'unitholder_type': 'renter'
}
]
}
]
私は私の問題は、私の中でかなり確信していますUnitSerializerを使用していますが、私はDRFにはまったく新しいものですが、ドキュメントを読んでいますが、まだそれを理解できていないようです。
hmm。ありがとう。私はそれを私の見解に加えましたが、効果はありませんでした。 [{'unit_type': 'Home'、 'unit_number':614、 'unitholders':[1]}] – Progger