2016-04-26 10 views
0

bekomme ich folgende Fehler und nicht finden können, wie es‚EstablishmentType‘ Objekt ist nicht iterable

Ausnahmetyp zu beheben: Typeerror Ausnahme Wert: ‚EstablishmentType‘ Objekt ist nicht iterable

Klasse Serializer:

class TransactionSerializer(serializers.HyperlinkedModelSerializer): 
    establishment_from_id = serializers.HyperlinkedRelatedField(view_name='establishment_type', read_only=True, many=True) 

class Meta: 
    model = Transaction 
    fields = ('id', 'created_date', 'updated_date','establishment_from_id', 'quantity', 'owner_id', 'quantity_missing', 'gps_longitude', 'gps_latitude', 'gps_accuracy', 'type') 

Models

class Transaction(models.Model): 
    created_date = models.DateTimeField() 
    updated_date = models.DateTimeField() 
    establishment_from_id = models.ForeignKey(EstablishmentType, related_name="establishment_from") 
    establishment_to_id = models.ForeignKey(EstablishmentType, related_name="establishment_to") 
    quantity = models.FloatField() 
    owner_id = models.ForeignKey(User) 
    quantity_missing = models.FloatField() 
    status = models.ForeignKey(TransactionStatus) 
    gps_longitude = models.CharField(max_length=400) 
    gps_latitude = models.CharField(max_length=400) 
    gps_accuracy = models.CharField(max_length=400) 
    type = models.FloatField() 

    def __str__(self): 
     return str(self.id) 

class EstablishmentType(models.Model): 
    name = models.CharField(max_length=200) 
    #created_by = CreatingUserField(related_name="created_categories") 

    def __str__(self): 
     return self.name 

Dank!

Antwort

0

Versuchen Sie, die many=True aus dem Serializer herauszunehmen. Die Einrichtung_von_ID ist ein FK und nicht ein M2M, also wird es für jede Instanz nur einen Wert haben. Wenn dies die Serialisierer für EstablishmentType wären, dann wäre es sinnvoll, eine many=True

+0

@PaulCould danke für Ihre Antwort zu haben! Entfernen Sie, was Sie gesagt haben und mir jetzt den folgenden Fehler zu verkaufen: Konnte die URL für hyperlinked Beziehung nicht mit View Name "Einrichtungstyp" auflösen. Möglicherweise haben Sie das zugehörige Modell nicht in Ihre API aufgenommen oder das Attribut "lookup_field" für dieses Feld falsch konfiguriert. –

+0

Haben Sie einen Serializer für 'EstablishmentType'? Wenn nicht, müssen Sie einen erstellen, wenn dies der Fall ist, stellen Sie sicher, dass alle ViewSets mit Routern verbunden sind und diese Router in Ihrer URLs.py enthalten sind. – Paul

Verwandte Themen