【发布时间】:2021-12-30 19:57:18
【问题描述】:
这是我的 Django 模型:
class M(models.Model):
a = models.IntegerField()
b = models.IntegerField()
这是序列化程序:
class MSerializer(ModelSerializer):
class Meta:
model = M
fields = ['a', 'b']
我希望能够实现这些 REST API:
-
127.0.0.1:8000/m/(获取所有元素的列表,发布新元素) -
127.0.0.1:8000/m/:id/(获取 id 为id的元素的详细信息) -
127.0.0.1:8000/n/:a/m/(获取具有特定a字段的所有元素)
到目前为止,这是我实现的视图和网址:
class MViewSet(ModelViewSet):
queryset = M.objects.all()
serializer_class = MSerializer
router = DefaultRouter()
router.register(r'm', MViewSet)
urlpatterns = [
path('', include(router.urls)),
]
但是,以这种方式,第三个用例不起作用。如何修改我的代码以使第三种情况有效?我希望使用尽可能少的代码行(即,我想使用一些 Django 内置功能)。
【问题讨论】:
-
没有真正得到你的第三种情况。从哪个模型获取所有元素? n 还是 m?那里有什么?
标签: python python-3.x django django-rest-framework django-views