Django Rest Framework-配置不正确:无法解析超链接关系的URL

rmcsharry

此问题类似,但我没有名称空间或基本名称,因此该问题中的任何解决方案均无效。

我有2个模型:组织学生

一个学生可以属于一个组织。

检索组织时,我希望返回的JSON中有一个子对象,该对象将“相关”学生列出为超链接url(根据HATEOS)。

models.py

class Organisation(TimeStampedModel):
  objects = models.Manager()
  name = models.CharField(max_length=50)

  def __str__(self):
    return self.name

class Student(TimeStampedModel):
  objects = models.Manager()
  first_name = models.CharField(max_length=50)
  last_name = models.CharField(max_length=50)
  email = models.EmailField(unique=True)
  organisation = models.ForeignKey(to=Organisation, on_delete=models.SET_NULL, default=None, null=True, related_name='students')

serializers.py

class OrganisationSerializer(serializers.ModelSerializer):
  students = serializers.HyperlinkedRelatedField(many=True, read_only=True, view_name='student-detail', lookup_url_kwarg='organisation_id')

  class Meta:
    model = Organisation
    fields = ('id', 'name','students')

class StudentSerializer(serializers.ModelSerializer):
  class Meta:
    model = Student
    fields = '__all__'

urls.py

from rest_framework import routers
from .views import OrganisationViewSet, StudentViewSet

from django.conf.urls import url

router = routers.DefaultRouter()
router.register(r'api/v1/organisations', OrganisationViewSet)
router.register(r'api/v1/students', StudentViewSet)

urlpatterns = router.urls

views.py

from .models import Organisation, Student
from rest_framework import viewsets, permissions
from .serializers import OrganisationSerializer, StudentSerializer

# Organisation Viewset
class OrganisationViewSet(viewsets.ModelViewSet):
  queryset = Organisation.objects.all()
  serializer_class = OrganisationSerializer
  permission_classes = [
    permissions.AllowAny
  ]

# Student Viewset
class StudentViewSet(viewsets.ModelViewSet):
  queryset = Student.objects.all()
  serializer_class = StudentSerializer
  permission_classes = [
    permissions.AllowAny
  ]

所以这应该工作,因为这是漂亮的样板代码。还是我听不懂?

Arakkal阿布

按照和的URL配置StudentViewSet,您不必在中提供lookup_url_kwargHyperlinkedRelatedField因此,您的序列化器将变为

class OrganisationSerializer(serializers.ModelSerializer):
    students = serializers.HyperlinkedRelatedField(many=True,
                                                   read_only=True,
                                                   view_name='student-detail')

    class Meta:
        model = Organisation
        fields = ('id', 'name', 'students')

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django REST Framework url 链接 - 无法解析超链接关系的 URL

来自分类Dev

Django REST Framework:无法使用视图名称解析超链接关系的URL

来自分类Dev

Django REST Framework:无法使用视图名称解析超链接关系的URL

来自分类Dev

Django Rest Framework超链接名称空间配置不正确

来自分类Dev

测试Django Rest Framework时创建超链接关系

来自分类Dev

Django Rest Framework,使嵌套关系超链接

来自分类Dev

Django-Rest-Framework关系和超链接API问题

来自分类Dev

Django Rest Framework:管理关系

来自分类Dev

Django Rest Framework嵌套关系

来自分类Dev

Django rest_framework关系

来自分类Dev

Django Rest Framework:查找超链接模型的URL

来自分类Dev

Django Rest Framework URL模式

来自分类Dev

Django Rest Framework反向URL

来自分类Dev

Django REST Framework中的APIView无法解析URL

来自分类Dev

Django Rest Framework实现多对多关系

来自分类Dev

Django Rest Framework-OneToOne反向关系

来自分类Dev

Django Rest Framework中的关系条件检查

来自分类Dev

Django Rest Framework-嵌套关系平整

来自分类Dev

Django-Rest-Framework。通过查询参数的超链接实体

来自分类Dev

注册后Django Rest Framework无法登录

来自分类Dev

如何在Django Rest Framework中建立嵌套关系的超链接字段?

来自分类Dev

Django Rest Framework and JSONField

来自分类Dev

Django Rest Framework API

来自分类Dev

Django Rest Framework的ModuleNotFoundError

来自分类Dev

即使登录请求的凭据不正确,Django Rest Framework也会返回200 OK

来自分类Dev

无法在Django Rest Framework中呈现嵌套关系

来自分类Dev

Django Rest Framework 3.0:保存嵌套的多对一关系

来自分类Dev

Django Rest Framework从ForeignKey关系返回单个字段

来自分类Dev

在Django Rest Framework中发布外键关系

Related 相关文章

  1. 1

    Django REST Framework url 链接 - 无法解析超链接关系的 URL

  2. 2

    Django REST Framework:无法使用视图名称解析超链接关系的URL

  3. 3

    Django REST Framework:无法使用视图名称解析超链接关系的URL

  4. 4

    Django Rest Framework超链接名称空间配置不正确

  5. 5

    测试Django Rest Framework时创建超链接关系

  6. 6

    Django Rest Framework,使嵌套关系超链接

  7. 7

    Django-Rest-Framework关系和超链接API问题

  8. 8

    Django Rest Framework:管理关系

  9. 9

    Django Rest Framework嵌套关系

  10. 10

    Django rest_framework关系

  11. 11

    Django Rest Framework:查找超链接模型的URL

  12. 12

    Django Rest Framework URL模式

  13. 13

    Django Rest Framework反向URL

  14. 14

    Django REST Framework中的APIView无法解析URL

  15. 15

    Django Rest Framework实现多对多关系

  16. 16

    Django Rest Framework-OneToOne反向关系

  17. 17

    Django Rest Framework中的关系条件检查

  18. 18

    Django Rest Framework-嵌套关系平整

  19. 19

    Django-Rest-Framework。通过查询参数的超链接实体

  20. 20

    注册后Django Rest Framework无法登录

  21. 21

    如何在Django Rest Framework中建立嵌套关系的超链接字段?

  22. 22

    Django Rest Framework and JSONField

  23. 23

    Django Rest Framework API

  24. 24

    Django Rest Framework的ModuleNotFoundError

  25. 25

    即使登录请求的凭据不正确,Django Rest Framework也会返回200 OK

  26. 26

    无法在Django Rest Framework中呈现嵌套关系

  27. 27

    Django Rest Framework 3.0:保存嵌套的多对一关系

  28. 28

    Django Rest Framework从ForeignKey关系返回单个字段

  29. 29

    在Django Rest Framework中发布外键关系

热门标签

归档