我有模型和序列化程序,我希望API使用用户名而不是pk
我该怎么做?我实际上试图使用查找字段,但这不是真正的工作
models.py
class IndividualUser(models.Model):
individual_user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
first_name = models.CharField(_("first name"), max_length=150)
last_name = models.CharField(_("last name"), max_length=150)
urls.py
path('api/profile/<str:individual_user>/', IndividualClientDetailApiView.as_view()),
views.py
class IndividualClientDetailApiView(generics.RetrieveAPIView):
queryset = IndividualUser.objects.all()
serializer_class = IndividualClientSerializer
permission_classes = (IsAuthenticated, IsOwnerOrAdminOrReadOnly)
lookup_field = 'individual_user'
1条答案
按热度按时间7ajki6be1#
你可以这样尝试:
这里,通过将
lookup_field
指向User
模型的username,当发出请求时,查询集将在该字段中查找,同时从url(通过lookup_url_kwarg
)传递indivisual_user
的username值。因此,URL看起来像这样:localhost:8000/API/profile/myusername/
更多信息可在文档中找到。