我有一个包含两个唯一字段的模型:
class Instance(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=64, unique=True)
在views.py
中:
class InstanceDetail(generics.RetrieveUpdateAPIView):
permission_classes = [IsAuthenticated, ]
queryset = Instance.objects.all()
serializer_class = InstanceSerializer
在urls.py
中:
path('<uuid:pk>/', InstanceDetail.as_view()),
现在,一切都按预期工作,我可以使用带有实例ID的API
但是如果我想用name
而不是id
来做同样的事情呢?因此,API将为相同的url提供id
或name
?有没有一种不重复任何代码的简单方法
我的两分钱在这上面
path('<str:name>/', InstanceDetail.as_view()),
与您提到的urls.py
一起添加到您的urls.py
中,因此,您现在应该使用相同的view
李>get_object()
以根据使用视图的url更改lookup_field
值李>因此,最后的
views.py
将有:相关问题 更多 >
编程相关推荐