2

拥有模型、序列化程序、视图和 url:

#models.py:
class Musician(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    instrument = models.CharField(max_length=100)

class Album(models.Model):
    artist = models.ForeignKey(Musician, on_delete=models.CASCADE)
    name = models.CharField(max_length=100)
    release_date = models.DateField()
    num_stars = models.IntegerField()

#serializers:
class MusicianSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Musician
        fields = ('id', 'first_name', 'last_name', 'instrument')

class AlbumSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Album
        fields = ('id', 'artist', 'name', 'release_date', 'num_stars')

#view:
class MusicianViewSet(viewsets.ModelViewSet):
    queryset = Musician.objects.all()
    serializer_class = MusicianSerializer

class AlbumViewSet(viewsets.ModelViewSet):
    queryset = Album.objects.all()
    serializer_class = AlbumSerializer

#urls:
router = DefaultRouter()
router.register(r'musicians', views.MusicianViewSet)
router.register(r'albums', views.AlbumViewSet)

是否可以在专辑的 List- 和 DetailView 的 OPTIONS(元数据)视图中包含音乐家的 ListView(可能的选择)的 URL?

重新调整类似:

OPTIONS /api/albums/

{ 
  ....
  "choises": {
      "mucician": http://BASE_URL/api/musicians/
      ... etc. for other foreign/related fields
  }
  ...
}

目前我只能使用 field.choices.items() 返回一个带有选项的字典

4

0 回答 0