मैं Django के लिए नया हूँ। और मैं django-rest-framework (अभी से DRF) के साथ काम करने की कोशिश कर रहा हूं एक एपीआई बनाएं ताकि मैं इसे रिएक्ट फ्रंटएंड से उपभोग कर सकूं।

मुझे वर्तमान में मिल रहा है:

विशेषता त्रुटि: धारावाहिक QuestionSerializer पर फ़ील्ड answers_set के लिए मान प्राप्त करने का प्रयास करते समय विशेषता त्रुटि मिली।

सीरिएलाइज़र फ़ील्ड का नाम गलत हो सकता है और Question इंस्टेंस पर किसी विशेषता या कुंजी से मेल नहीं खा सकता है।

मूल अपवाद टेक्स्ट था: 'प्रश्न' ऑब्जेक्ट में कोई विशेषता नहीं है 'answer_set'।

लेकिन मैंने इस सवाल का पालन किया है अतिरिक्त फ़ील्ड जोड़ने के लिए और one उस त्रुटि में खुदाई करने के लिए। अभी भी वही त्रुटि मिल रही है।

तो, मेरे पास दो मॉडल हैं:

प्रश्न

class Question(models.Model):
    id = models.AutoField(primary_key=True)
    title = models.CharField(max_length=250)
    description = models.CharField(max_length=1000)
    created_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    created_at = models.DateTimeField(auto_now=False, auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=False, auto_now_add=True)

उत्तर

class Answer(models.Model):
    id = models.AutoField(primary_key=True)
    answer = models.CharField(max_length=1000)
    question = models.ForeignKey(Question, on_delete=models.CASCADE, default=None)
    created_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    created_at = models.DateTimeField(auto_now=False, auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=False, auto_now_add=True)

तो मेरे पास दो धारावाहिक हैं:

उत्तर क्रमांक

class AnswerSerializer(serializers.ModelSerializer):
    class Meta:
        model = Answer
        fields = ['answer', 'created_by', 'updated_at']

प्रश्नधारावाहिक

class QuestionSerializer(serializers.ModelSerializer):
    answers_set = AnswerSerializer(many=True)

    class Meta:
        model = Question
        fields = [
            'id',
            'title',
            'description',
            'answers_set',
            'created_by',
            'created_at',
            'updated_at',
        ]

मुझे लगता है कि मैं जो गलत कर रहा हूं उसे पाने के लिए यह "प्रासंगिक" जानकारी है ... तो, मैं क्या गलत कर रहा हूं?

0
Maramal 31 मार्च 2021, 04:27
1
answer_set answers_set नहीं?
 – 
Iain Shelvington
31 मार्च 2021, 04:39

1 उत्तर

सबसे बढ़िया उत्तर

यह answers_set के बजाय answer_set होना चाहिए

या

source को इस रूप में सेट करें

answers_set = AnswerSerializer(many=True, source="answer_set")
1
JPG 31 मार्च 2021, 04:40
1
मैंने सोचा था कि answers_set चर नाम के आधार पर शाब्दिक था, आरक्षित शब्द नहीं। धन्यवाद।
 – 
Maramal
31 मार्च 2021, 04:44