2014-08-30 17 views
5

I Fremdschlüssel-Set mit Django Rastrahmen bin Serialisierung, ich habe folgende Modelle:Wie umbenennen

class Transaction(models.Model): 
    ... 
class TransactionStatus(models.Model): 
    transaction = models.ForeignKey(Transaction) 
    ... 

Ich habe einen Serializer für beide Modelle, einer von ihnen sieht wie folgt aus:

class TransactionSerializer(serializers.ModelSerializer): 
    transactionstatus_set = TransactionStatusSerializer(many=True, read_only=True) 

    class Meta: 
     model = Transaction 
     depth = 1 
     fields = ('id', 'transactionstatus_set') 

ich hier eine Liste der Transaktion von der Rückseite _SET queryset verwiesen Status haben will ... Aber transaction_set scheint nur sehr sperrige Namen in API für die ..

Antwort

9

Nach einem schnellen Experimentierens habe ich entdeckt, dass dieser den Trick tun wird:

class TransactionSerializer(serializers.ModelSerializer): 
    changes = TransactionStatusSerializer(many=True, read_only=True, source='transactionstatus_set') 

    class Meta: 
     model = Transaction 
     depth = 1 
     fields = ('id', 'changes') 

Jetzt habe ich eine Liste der von Fremdschlüssel mit einem schönen Namen verknüpft Status ...

+1

Als Hinweis 'source' ist der ursprüngliche Name des "Felds" im 'Django-Modell' und die Variable, die der zugehörige Serializer deklariert (in diesem Fall 'Änderungen'), ist der endgültige Name des umbenannten Feldes. –

+0

Vielen Dank für diese Antwort, zu finden, dass es mich getötet hat – Dakusan