1
モデルシリアライザに新しいフィールドを追加しようとしていますが、このモデルの関連するすべての値を別のものに表示します。私は以下の持っているとして同様Django Rest Frameworkで関連するオブジェクトをリストする方法
:
models.py
from django.db import models
class University(models.Model):
name = models.CharField(max_length=50)
def __unicode__(self):
return self.name
class Student(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
university = models.ForeignKey(University)
def __unicode__(self):
return '%s %s' % (self.first_name, self.last_name)
views.py
from rest_framework import viewsets
from .models import University, Student
from .serializers import UniversitySerializer, StudentSerializer
class StudentViewSet(viewsets.ModelViewSet):
queryset = Student.objects.all()
serializer_class = StudentSerializer
class UniversityViewSet(viewsets.ModelViewSet):
queryset = University.objects.all()
serializer_class = UniversitySerializer
serializers.py
from rest_framework import serializers
from .models import University, Student
class UniversitySerializer(serializers.ModelSerializer):
class Meta:
model = University
class StudentSerializer(serializers.ModelSerializer):
class Meta:
model = Student
と
urls.py
from rest_framework import routers
from core.views import StudentViewSet, UniversityViewSet
from django.conf import settings
from django.conf.urls import url, include
from django.contrib import admin
router = routers.DefaultRouter()
router.register(r'students', StudentViewSet)
router.register(r'universities', UniversityViewSet)
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^api/', include('apps.core.urls', namespace='core')),
]
と私は今、この
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"students": "http://127.0.0.1:8000/api/students/",
"universities": "http://127.0.0.1:8000/api/universities/"
}
ときのように取得するように、今私はジャンゴ・休息・フレームワークを使用して、残り-APIを書いています私はhttp://127.0.0.1:8000/api/universities/をクリックします。私は、学生が何ので、私は大学で学生のIDのリストを追加したい特定の大学を持っていないようにhttp://127.0.0.1:8000/api/students/
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
[
{
"id": 35,
"first_name": "Gugu",
"last_name": "Gaga",
"university": 11
},
{
"id": 36,
"first_name": "qwer",
"last_name": "abcd",
"university": 12
}
]
をクリックする上
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
[
{
"id": 1,
"name": "test42"
},
{
"id": 2,
"name": "xxxxxx1222"
},
{
"id": 3,
"name": "MIT"
}
]
及びこれを取得します。 Like
HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
[
{
"id": 1,
"name": "test42"
"students" : {42,56,78}
},
{
"id": 2,
"name": "xxxxxx1222"
"students" : {2,6,8}
},
{
"id": 3,
"name": "MIT"
"students" : {4,5,7}
}
]
どうすればよいですか?
おかげでブロ!私のディワリを救った!ハッピーディワリ:D – shubhpy
ハッピーディワリ:) – Sagar