У меня две модели: поле и набор. И я хочу иметь гиперссылку на поля, которые составляют конкретный набор.
, например: URL: sets/
должен вернуть [{'title': 'dimensional', 'fieldsLink': '#url-to-enpoin'}]
Django-Rest-Framework. Объекты гиперссылки через параметры запроса
Там нет ничего сложного, чтобы написать что-то вроде этого:
class Field(models.Model):
title = models.CharField(max_length=255, blank=True, null=True)
set = models.ForeignKey(Set, related_name='fields', blank=True, null=True)
class Set(models.Model):
title = models.CharField(max_length=255, blank=True, null=True, unique=True)
slug = models.SlugField(unique=True)
class SetSerializer(serializers.HyperlinkedModelSerializer):
field_list = serializers.HyperlinkedIdentityField(
view_name='apiv1:setfields-list',
lookup_field='slug')
class Meta:
model = Set
fields = ('title', 'field_list')
urlpatterns = patterns('',
url(r'^fields/$', views.FieldView.as_view(), name='fields-list'),
url(r'^sets/$', views.SetView.as_view(), name='sets-list'),
url(r'^sets/(?P<slug>[\d\w\-]+)/fields/$', views.SetFieldView.as_view(), name='setfields-list'), # this url should be removed
)
Но как я могу гиперссылку установить на поля через URL, как fields/?set=dimensional
(запрос параметр) вместо sets/dimensional/fields/
(аргумент в url)?
Есть ли встроенный способ сделать это вместо переопределения HyperlinkedIdentityField
?
Там нет построен в пути, насколько я знаю, я использую подобные решения в своем коде – nemesisdesign