Django-Rest-Framework aktualisiert einen Fremdschlüssel BY Id

Ich benutze Django-Rest-Framework, um das Backend aufzubauen. Ich habe die Liste in Ordnung, kann aber (unter Verwendung des Administrationsbildschirms von Django-Rest-Framework) kein Objekt erstellen, indem ich nur die ID-Felder der Fremdschlüsselobjekte verwende. Ich hoffe, dass ich das falsch konfiguriert habe, aber ich bin offen dafür, Code zu schreiben, wenn ich muss :) Ich lerne Django / Python von einem .NET- und Java-Hintergrund und bin möglicherweise ein durch diesen neuen Stapel verdorbener Touch geworden.

Bearbeiten: Ich versuche, nicht zwei verschiedene Modellklassen zu verwenden - ich sollte nicht richtig müssen?

Danke im Voraus.

Von Chrome - die Schlüsselbits der Anfrage

Request URL:http://127.0.0.1:8000/rest/favorite_industries/ 
Request Method:POST 
_content_type:application/json
_content:{
    "user_id": 804    ,"industry_id": 20 }

Die Antwort

HTTP 400 BAD REQUEST
Vary: Accept
Content-Type: text/html; charset=utf-8
Allow: GET, POST, HEAD, OPTIONS

{
    "user": [
        "This field is required."
    ]
}

Pfui. Hier sind die wichtigsten Klassen von Django:

class FavoriteIndustry(models.Model):
    id = models.AutoField(primary_key=True)
    user = models.ForeignKey(User, related_name='favorite_industries')
    industry = models.ForeignKey(Industry)

    class Meta:
        db_table = 'favorites_mas_industry'

class FavoriteIndustrySerializer(WithPkMixin, serializers.HyperlinkedModelSerializer):
    class Meta:
        model = myModels.FavoriteIndustry
        fields = (
            'id'
            , 'user'
            , 'industry'
        )

Bearbeiten Hinzufügen des Viewsets:

class FavoriteIndustriesViewSet(viewsets.ModelViewSet):
    #mixins.CreateModelMixin, viewsets.GenericViewSet):
    paginate_by = 1
    queryset = myModels\
        .FavoriteIndustry\
        .objects\
        .select_related()
    print 'SQL::FavoriteIndustriesViewSet: ' + str(queryset.query)
    serializer_class = mySerializers.FavoriteIndustrySerializer

Die Get / List-Funktionalität generiert ordentliches JSON:

{"count": 2, "next": "http://blah.com/rest/favorite_industries/?page=2&format=json"," previous ": null," results ": [{" id ": 1," user ":"http://blah.com/rest/users/804/"," industry ": {" industry_id ": 2," industry_name ":" Consumer Discretionary "," parent_industry_name ":" Consumer Discretionary "," category_name ":" Industries "}]}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage