Django rest框架:如何让客户端知道pk,以便获取、更新或删除

Django rest框架:如何让客户端知道pk,以便获取、更新或删除,django,django-rest-framework,Django,Django Rest Framework,django rest框架 我有两个api url(r'^testall/$',views.DataList.as_view()), url(r'^testone/(?P<pk>[0-9]+)/$',views.DataDetail.as_view()), 这是我的型号 class Data(models.Model): mac_address = models.CharField(max_length=50, null=False, blank=False) d

django rest框架

我有两个api

url(r'^testall/$',views.DataList.as_view()),
url(r'^testone/(?P<pk>[0-9]+)/$',views.DataDetail.as_view()),
这是我的
型号

class Data(models.Model):

    mac_address = models.CharField(max_length=50, null=False, blank=False)
    datetime = models.DateTimeField(auto_now=False, auto_now_add=False)
    ...
我有一个字段
mac\u地址
,它是唯一的,客户知道这一点
我想也许我可以编辑代码来

 url(r'^testone/(?P<mac_address>\w+)/$',views.DataDetail.as_view())
我不确定在url(
http://localhost:8000/test/A1:BC:34:WD:TT/
)是个好主意 请引导我
非常感谢

这里pk是查找字段, 调用此url时,
url(r'^testall/$,views.DataList.as_view())
你会得到这样的回应

{'id': 4, 'mac_address': 3423, ..}
,这里的“id”是该id可用于调用的“pk”

url(r'^testone/(?P<pk>[0-9]+)/$',views.DataDetail.as_view()),
url(r'^testone/(?P[0-9]+)/$,views.DataDetail.as_view()),
及 在视图中,您可以使用mac地址作为查找字段

url(r'^testone/(?P<mac_address>\w+)/$',views.DataDetail.as_view())

class DataDetail(generics.RetrieveUpdateDestroyAPIView):
    queryset = Data.objects.all()
    serializer_class = DataSerializer
    lookup_field = 'mac_address'
url(r'^testone/(?P\w+/$),views.DataDetail.as_view())
类DataDetail(generics.RetrieveUpdatedStroyapiView):
queryset=Data.objects.all()
序列化程序\u类=数据序列化程序
查找\u字段='mac\u地址'
你可以参考更多

url(r'^testone/(?P<pk>[0-9]+)/$',views.DataDetail.as_view()),
url(r'^testone/(?P<mac_address>\w+)/$',views.DataDetail.as_view())

class DataDetail(generics.RetrieveUpdateDestroyAPIView):
    queryset = Data.objects.all()
    serializer_class = DataSerializer
    lookup_field = 'mac_address'