前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django-DRF | 超链接

Django-DRF | 超链接

作者头像
小团子
发布2020-02-20 18:27:16
8420
发布2020-02-20 18:27:16
举报
文章被收录于专栏:数据云团

Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

HyperlinkedIdentityField

用超链接的方式有个明确的指向,models 序列化的字段由外键变为超链接的关联形式允许直接通过 pk 跳转到 api 页面。

序列化

代码语言:javascript
复制
class CategorySerializer(serializers.ModelSerializer):
    column = ColumnSerializer()
    class Meta:
        model = Category
        fields = ['id','name', 'column']

class ArticleSerializer(serializers.ModelSerializer):
    # view_name表示路由的别名,注意如果不是根目录下,则需要使用命名空间来:,
    # lookup_field:根据表指定字段,来拼路径,生成链接
    # lookup_url_kwarg:默认是pk,(urls.py中的指定的pk)可以不写,反向解析有名分组的名字。
    category = serializers.HyperlinkedIdentityField(view_name='api:category_detail', lookup_field='category_id', lookup_url_kwarg='pk')
    class Meta:
        model = Article
        fields = ['id', 'title', 'keywords', 'description', 'cover', 'read_num', 'like_num', 'category', 'tag', 'author']

url配置

代码语言:javascript
复制
urlpatterns = [
    path('articles/', ArticListleView.as_view(), name='article_list' ),
    path('articles/<int:pk>/', ArticleDetailView.as_view(), name='article_detail'),
    path('categories/<int:pk>/', CategoryDetailView.as_view(), name='category_detail'),
]

视图

代码语言:javascript
复制
class CategoryDetailView(generics.RetrieveUpdateDestroyAPIView):
    queryset = Category.objects.all()  # 查询结果集
    serializer_class = CategorySerializer  # 序列化类

class ArticListleView(generics.ListCreateAPIView):
    queryset = Article.objects.all()  # 查询结果集
    serializer_class = ArticleSerializer # 序列化类
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HyperlinkedIdentityField
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档