django-rest-framework: Aufbau-Serialisierungsprogramm für foreign key

In meinem Modell, ich habe zwei Tabellen mit Namen: Vtable und Vdata. Jede virtuelle Tabelle (in Vtable) Einträge von virtuellen Daten in Vdata.

Ich versuche zu machen, eine Ansicht, die zeigen würde, die Liste der Vdata entsprechenden Vtable

Mein serializer nicht funktioniert und ich denke, es ist weil ich mache es rückwärts.
Ich denke, das problem liegt in dieser Zeile:
table_id = serializers.RelatedField(many=True)

Referenz, bekomme ich diesen Fehler: 'Vtable' object is not iterable

Hier ist meine models.py:

from django.db import models
from django.contrib.auth.models import User

class Vtable(models.Model):
    user = models.ForeignKey(User)
    table_name = models.CharField(max_length=200)
    added_date = models.DateTimeField('date added')
    def __unicode__(self):
        return self.table_name

class Vdata(models.Model):
    table_id = models.ForeignKey(Vtable)
    table_pk = models.IntegerField()
    column_1 = models.CharField(max_length=200)
    column_2 = models.CharField(max_length=200)
    added_date = models.DateTimeField('date added')
    def __unicode__(self):
        return str(self.added_date)

Hier ist meine serializers.py:

from django.contrib.auth.models import User, Group
from rest_framework import serializers
from vtables.models import Vtable, Vdata

class TableSerializer(serializers.HyperlinkedModelSerializer):
    user = serializers.Field(source='user.username')

    class Meta:
        model = Vtable
        fields = ('table_name', 'added_date', 'user')

class EntrySerializer(serializers.HyperlinkedModelSerializer):
    table_id = serializers.RelatedField(many=True)

    class Meta:
        model = Vdata
        fields = ('table_id', 'table_pk', 'column_1', 'column_2', 'added_date')

Hier ist der Ansicht, dass es selbst nennt:

class EntryList(APIView):
    def get(self, request, format=None):
        entries = Vdata.objects.all()
        serializer = EntrySerializer(entries, many=True)
        return Response(serializer.data

        class Meta:
            model = Vdata
            fields = ('table_id', 'table_pk', 'column_1', 'column_2', 'added_date')
InformationsquelleAutor adrianmc | 2014-08-08
Schreibe einen Kommentar