django - 如果模型分配了lookup_fields,如何使用drf-extension(Django Rest Framework)
问题描述
如果我举一个我正在研究的例子会更好。模型是
class Author(models.Model):
id = models.IntegerField(db_column='a_id', primary_key=True)
first_name = models.CharField(max_length=20)
last_name = models.CharField(max_length=20)
class Book(models.Model):
id = models.IntegerField(db_column='b_id', primary_key=True)
title = models.CharField(max_length=60)
author = models.ForeignKey(Author, on_delete=models.CASCADE)
序列化器是,
class AuthorSerializer(ModelSerializer):
class Meta:
model = Author
fields = ('id', 'first_name', 'last_name')
class BookSerializer(ModelSerializer):
class Meta:
model = Book
fields = ('id', 'author', 'title')
视图集是,
class AuthorViewSet(NestedViewSetMixin, ModelViewSet):
serializer_class = AuthorSerializer
queryset = Author.objects.all()
class BookViewSet(NestedViewSetMixin, ModelViewSet):
serializer_class = BookSerializer
queryset = Book.objects.all()
现在以下 API 工作正常,
/authors/
/authors/{author_id}/
/authors/{author_id}/books/
但是,如果我将作者视图更改为
class AuthorViewSet(NestedViewSetMixin, ModelViewSet):
serializer_class = AuthorSerializer
queryset = Author.objects.all()
lookup_field = 'first_name'
然后,以下 API 起作用
/authors/
/authors/{author_first_name}/
但以下不起作用。
/authors/{author_first_name}/books/
我知道这是因为这两个表之间的外键关系。我只是想知道如果我想保留lookup_fields 是否有任何解决方法。
谢谢
解决方案
推荐阅读
- javascript - 我没有使用 pdf.js 从 iframe 获取 contentDocument
- tinymce - 在 ABP 中将 roxyfileman 与 tinymce 集成时有什么问题
- networking - 如何更改谷歌云虚拟机实例本地 IP?
- ruby-on-rails - Ruby - Oci8 - 使用行类型调用函数不起作用
- python-3.x - Python请求表单编码参数而不是URL
- c++ - OpenGL使物体粘在相机上
- javascript - 你的:在 Chrome 扩展程序中隐藏签名 API 令牌?
- dart - 如何从泛型调用序列化方法
- amazon-eks - 如何更新 AWS EKS 集群中的现有部署?
- c++ - asio::async_write 在大容量流上同步非常困难