Ich versuche, Daten aus einer Tabelle zu zeigen, dass es mehr ForeignKey Felder zugewiesen hat:, wie Daten aus verknüpften Tabellen in DJANGO DRF zeigen
class Promotion (models.Model):
User = models.ForeignKey(User)
Rating = models.ForeignKey(Rating)
Date_Effective = models.DateField()
def __str__(self):
return self.Rating.Rank.Short_Rank + ' ' + self.User.last_name + ' (' + str(self.Date_Effective) + ')'
class Rating (models.Model):
Rank = models.ForeignKey(Rank)
Genre = models.ForeignKey(Genre)
Branch = models.ForeignKey(Branch)
Image = models.FileField(upload_to='ranks')
def __str__(self):
return self.Rank.Display_Rank + " (" + self.Branch.Branch + "; " + self.Genre.Short_Term + ")"
Ich versuche, einen Serializer zu bauen, die zeigt, Bewertung. str Wert von ihm und Benutzerinformationen.
class PromotionSerializer(serializers.HyperlinkedModelSerializer):
Rating = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
users = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
class Meta:
model = Promotion
fields = ('Date_Effective', 'Rating', 'users')
Dies führt zu Fehler:
Exception Type: TypeError at /member/api/promotions/
Exception Value: 'Rating' object is not iterable
Ich versuche, diese Sache, um herauszufinden. Wie mache ich das? Vielen Dank.
Versuchen Sie, 'viele = False' in' Rating = serializers.PrimaryKeyRelatedField (viele = True, read_only = True) ' –
ok. Ich habe jetzt einen Fehler für den Benutzer. Ich nahm Benutzer heraus, um ' zu erhalten { " url ":" http://127.0.0.1:8000/member/api/promotions/2/ ", " Date_Effective ":" 2017-03-18 ", " Bewertung ": 2 }' Wie bekomme ich den Wert "__str__" anstelle der PK-Nummer. Wie bekomme ich es dann für den Benutzer? Vielen Dank. – arcee123
definierte Bewertung mit SerializerMethodField: 'Rating = serialisers.SerializerMethodField()' und 'def get_rating (self, obj): zurück str (obj)' – Enix