django rest framework - Получить URL для выбора - PullRequest
0 голосов
/ 16 октября 2018

Наличие модели, сериализатора, представления и 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)

Можно ли включить URL-адрес для ListView (возможные варианты) Muscians в представлении OPTIONS (метаданные) в List- иDetailView для альбомов?

Повторная настройка что-то вроде:

OPTIONS /api/albums/

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

В настоящее время я могу вернуть только диктовку с вариантами выбора, используя field.choices.items ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...