2014-08-30 9 views
5

मैं विदेशी कुंजी सेट Django बाकी फ्रेमवर्क का प्रयोग करके serializing कर रहा हूँ, मैं निम्नलिखित मॉडल:कैसे नाम बदलने के लिए ForeignKey Django बाकी फ्रेमवर्क में क्षेत्र सेट

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

मैं इन मॉडलों के दोनों के लिए एक serializer, उनमें से एक दिखता है इस तरह:

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

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

मैं यहाँ लेन-देन की एक सूची है करना चाहते हैं संदर्भित _set क्वेरीसमूह पीछे से स्थितियां ... लेकिन transaction_set सिर्फ इतना है कि के लिए एपीआई में बहुत ही अजीब नाम लगता है ..

उत्तर

9

एक त्वरित प्रयोग मैं ने पाया है कि इस चाल करना होगा करने के बाद:

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

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

अब मैं एक अच्छा नाम के साथ विदेशी कुंजी से जुड़े हुए स्थितियों की सूची है ...

+1

एक नोट के रूप में 'source' 'django मॉडल' में 'फ़ील्ड' का मूल नाम है, और वेरिएबल जो संबंधित धारावाहिक घोषित कर रहा है (इस मामले में 'परिवर्तन') नामित क्षेत्र का अंतिम नाम है। –

+0

इस उत्तर के लिए आपको बहुत बहुत धन्यवाद, यह ढूंढकर कि यह मुझे मार रहा था – Dakusan

संबंधित मुद्दे