Django Rest Frameworkの学習を始め、Django restフレームワークを使用して簡単なAPIを作成しようとしています。Django RestフレームワークのForeignkeyフィールドの動的選択
これは私のmodels.py
from __future__ import unicode_literals
from django.db import models
class Student(models.Model):
created = models.DateTimeField(auto_now_add=True)
name = models.CharField(max_length=150, blank=False)
student_id = models.CharField(max_length=20, primary_key=True)
father_name = models.CharField(max_length=150)
mother_name = models.CharField(max_length=150)
class Meta:
ordering = ('student_id',)
class Subject(models.Model):
created = models.DateTimeField(auto_now_add=True)
subject_id = models.CharField(max_length=20, primary_key=True)
name = models.CharField(max_length=150)
class Meta:
ordering = ('subject_id',)
class Result(models.Model):
created = models.DateTimeField(auto_now_add=True)
grade = models.DecimalField(max_digits=5, decimal_places=3, blank=False)
student_id = models.ForeignKey(Student, on_delete=models.CASCADE)
subject_id = models.ForeignKey(Subject, on_delete=models.CASCADE)
class Meta:
ordering = ('created',)
であり、これは私のserializers.py私の "結果" モデルでは
from rest_framework import serializers
from models import *
class StudentSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Student
fields = ('student_id', 'name', 'father_name', 'mother_name')
class SubjectSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Subject
fields = ('subject_id', 'name')
class ResultSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Result
fields = ('grade', 'student_id', 'subject_id')
ですが、私は2つの外部キーを持っています。 student_idとsubject_id。 、どのように私は、「学生のオブジェクト」と「サブジェクトオブジェクト」を示すの代わりにドロップダウンメニューで「名前」フィールドを表示することができている
私の質問:これは、それがどのように見えるかですか?
私は、モデルの「選択肢=」フィールドに
STUDENT_CHOICES = [(each.student_id, each.name) for each in Student.objects.all()]
SUBJECT_CHOICES = [(each.subject_id, each.name) for each in Subject.objects.all()]
で試してみましたが、それはうまくいきませんでした。
ありがとうございます。
ありがとうございました。それは働いた:D –
あなたは大歓迎です:) –