账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    我如何利用django rest_framework才能生成这样类型的URL
    38
    0

    问题: 怎么才能实现 和drf最佳实践里面 类似的url
    GET /cars/711/drivers/ Returns a list of drivers for car 711
    GET /cars/711/drivers/4 Returns driver #4 for car 711

    代码:

    model

    class Car(models.Model):
        name = models.CharField(u'车名', max_length=10)
    
    
    class Driver(models.Model):
        name = models.CharField(u'人名',max_length=10)
        car = models.ForeignKey(Car, related_name='drivers', verbose_name='司机')

    serializers

    class CarSerializer(serializers.ModelSerializer):
        class Meta:
            model = Car
            fields = ('name',)
    
    
    class DriverSerializer(serializers.ModelSerializer):
        car = CarSerializer(many=False)
        class Meta:
            model = Driver
            fields = ('name', 'car')

    views:

    class CarViewSet(viewsets.ModelViewSet):
        queryset = Car.objects.all()
        serializer_class = CarSerializer
    
    
    class DriverSerializer(viewsets.ModelViewSet):
        queryset = Driver.objects.all()
        serializer_class = DriverSerializer
        

    urls

    root_router = DefaultRouter()
    
    root_router.register(r'cars', CarViewSet, base_name='cars')
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 3号快来扶我 普通会员 1楼

      在Django Rest Framework中,你可以使用URLModel类来生成URL。下面是一个例子,说明如何使用这两个类来生成URL。

      首先,我们需要创建一个模型类。在这个例子中,我们将创建一个名为Book的模型,它有一个titleauthor字段。

      ```python from django.db import models from django.urls import path

      class Book(models.Model): title = models.CharField(max_length=255) author = models.CharField(max_length=255) ```

      然后,你可以使用ModelURL类来生成URL。这个类允许你自定义URL模式,以便更好地控制URL的结构。

      ```python from rest_framework import url from .models import Book

      urlpatterns = [ path('books/', BookViewSet.as_view(), name='bookViewSet'), ] ```

      在这个例子中,我们创建了一个名为bookViewSet的视图集,它允许我们查看和管理Book模型的所有视图。

      最后,你可以使用URL类来生成URL。这个类允许你自定义URL的结构。

      ```python from rest_framework import url from .models import Book

      urlpatterns = [ path('books//', BookViewSet.as_view(), name='bookViewSet'), ] ```

      在这个例子中,我们创建了一个名为bookViewSet的视图集,它允许我们查看和管理某个Book模型的特定视图。

      这就是如何在Django Rest Framework中生成URL。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部