Saya punya dua model seperti:
class Car(models.Model):
name = models.CharField(max_length=255)
class CarImage(models.Model):
car = models.ForeignKey(Car, related_name='photos')
photo = models.ImageField(upload_to='car/')
Dari model di atas saya ingin mengambil semua gambar mobil. Jadi saya menulis serailzer saya sebagai berikut:
class CarSerializer(serializers.ModelSerializer):
"""
"""
_id = serializers.ReadOnlyField(source='pk')
photos = serializers.RelatedField(many=True, read_only=True)
class Meta:
model = Car
fields = ('my_field_here', )
class CarImageSerializer(serializers.ModelSerializer):
"""
"""
_id = serializers.ReadOnlyField(source='pk')
class Meta:
model = CarImage
fields = ('my_field_here', )
Tetapi di CarSerializer
bidang foto serializer memberikan kesalahan ini RelatedField.to_representation() must be implemented for field . If you do not need to support write operations you probably want to subclass
ReadOnlyFieldinstead.
Tapi id saya menggunakan PrimaryKeyRelatedField
alih-alih Bidang Terkait maka itu berfungsi dengan baik dan saya mendapatkan daftar kunci utama tetapi saya ingin semua bidang.
Saya juga mencoba menggunakan CarImageSerializer
sebagai
Dalam Carserializer
dideklarasi
assets_keys = serializers.SerializerMethodField()
def get_assets_keys(self, obj):
return AssetKeySerializer(obj.asset_keys.all(), context=self.context).data
Tapi itu tidak bisa membuat serial daftar kunci aset, itu membutuhkan objek tunggal.
Jadi pertanyaan saya adalah apakah mungkin untuk mendapatkan data objek terkait menggunakan serializer. Jika ya, apa yang perlu saya perbaiki di serializer saya?
Tanggapan saya harus terlihat seperti:
[
{
"_id": 1,
"name": "first",
"photos": [
"name":"xyz",
"photo":"path_to_photo"
]
},
{
"_id": 1,
"name": "second",
"photos": [
"name":"abcddd",
"photo":"path_to_photo"
]
},
]