में डॉट का उपयोग कर डीआरएफ (Django बाकी फ्रेमवर्क) मेरी मॉडलों में से एक का उपयोग प्राथमिक कुंजी के रूप में एक आईपी पता है।Django बाकी फ्रेमवर्क यूआरएल
class VTE(models.Model):
ipaddr = models.CharField(primary_key=True, max_length=16)
...
समस्या यह है कि पी डॉट्स शामिल है, और जब बाकी यूआरएल इकट्ठे है डॉट्स के बजाय प्राथमिक कुंजी के हिस्से के रूप डीआरएफ द्वारा स्वरूपण विकल्प के रूप में व्याख्या कर रहे हैं। नीचे दी गई त्रुटि और मिलान पैटर्न देखें।
Request URL: http://192.168.10.121/api/vtes/172.25.128.29/
Using the URLconf defined in vtfx.urls, Django tried these URL patterns, in this order:
...
^api/ ^$ [name='api-root']
^api/ ^\.(?P<format>[a-z0-9]+)$ [name='api-root']
^api/ ^vtes/$ [name='vte-list']
^api/ ^vtes/\.(?P<format>[a-z0-9]+)$ [name='vte-list'] <---- HERE
^api/ ^vtes/(?P<pk>[^/.]+)/$ [name='vte-detail']
^api/ ^vtes/(?P<pk>[^/.]+)/\.(?P<format>[a-z0-9]+)$ [name='vte-detail']
...
यह प्राथमिक कुंजी के हिस्से के रूप डॉट्स का उपयोग करने के लिए गलत क्या है? यदि नहीं यह एक तरह कैसे डीआरएफ रूटर विधानसभा यूआरएल के साथ की असंगत है।
वहाँ कि हल करने के लिए एक डीआरएफ रास्ता नहीं है?
अद्यतन: संदर्भ
api.py:
class VTESerializer(serializers.ModelSerializer):
class Meta:
model = models.VTE
class VTEViewSet(viewsets.ModelViewSet):
queryset = models.VTE.objects.all()
serializer_class = VTESerializer
permission_classes = (permissions.AllowAny,)
urls.py:
router = routers.DefaultRouter()
router.register(r'vtes', api.VTEViewSet)
urlpatterns = patterns('',
url(r'^api/', include(router.urls)),
...
)
2,4 करने के लिए 2.3.x से एक अपडेट के बाद यह त्रुटि देख लोगों के लिए एक संकेत के रूप में: इस नए ViewSet कि समस्या का हल है ऐसा लगता है कि पहले 2.4 करने के लिए, डॉट्स डिफ़ॉल्ट lookup_value_regex में है, बशर्ते शामिल थे कि trailing_slash सही पर सेट किया गया था। – jgiralt