ΠΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±Π° ΡΡΡΠ»Π°ΡΡΡΡ Π΄ΡΡΠ³ Π½Π° Π΄ΡΡΠ³Π°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Ρ Π²Π°Ρ Π΅ΡΡΡ User, Π° Π΄Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Ρ Π²Π°Ρ Π΅ΡΡΡ Post ΠΈ Attachment.
# users
class UserSerializer:
posts = PostSerializer()
profile_attachments = AttachmentSerializer()
#posts
class PostSerializer:
user = StringSerializer()
attachments = AttachmentSerializer()
class AttachmentSerializer:
name = CharField()
size = IntegerField()
Π Django Π΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠ»ΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΠΎΠ±ΡΡΠ²Π»ΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΡΡΠΎΠΊΠΎΠΉ:
profile_attachment = models.ForeignKey('posts.Attachment', on_delete=models.CASCADE)
ΠΠΎΠΆΠ΅Ρ Π»ΠΈ DRF ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π΄Π»Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ²? Π§ΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅
profile_attachment = ModelSerializer(serializer='posts.AttachmentSerializer')
ΠΡΠΈΠ²Π΅Ρ, ΠΌΡΠΎΠ΄Π°Π»!
ΠΠ½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π² Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Β«ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΡ
Β» ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: DRF: ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ
Django: ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΠΌ Β«Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈΒ»
Π₯ΠΎΡΡ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ.
Π’Π°ΠΊ ΡΡΠΎ Ρ ΠΌΠ΅Π½Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΅ΡΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΠ»ΡΡΠ°ΠΉ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌ Ρ ΡΠ°Π±ΠΎΡΠ°Ρ, Π½ΠΎ Π²Π°ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ. ΠΡΡΡΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΈΠ· ΠΊΡΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΠΈ ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ - ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄Π½ΠΎΡΡΠΎΡΠΎΠ½Π½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ. ΠΡΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅. ΠΡΠ»ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΡΠ΅Π½Ρ ΡΠ΅ΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π²ΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ.
Π― ΠΌΠΎΠ³Ρ ΠΎΡΠΈΠ±Π°ΡΡΡΡ, Π½ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ½Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΡΡΠΎ Π»ΡΡΡΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°.
Π― ΡΠ΄ΠΈΠ²Π»Π΅Π½, ΡΡΠΎ ΡΡΠΎ Π½Π΅ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ.