django rest框架-获取选择的网址

时间:2018-10-16 08:35:11

标签: django-rest-framework django-views django-rest-viewsets

具有模型,序列化器,视图和网址:

#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()返回带有选择项的字典

0 个答案:

没有答案