Ich bin neu mit Django
und Django rest framework
, ich versuche, mehrere Routen zu erstellen, um die Daten aus der Datenbank zu erhalten.mehrere Parameter in Django Rest Framework übergeben
Gerade jetzt in meiner urls.py
Datei habe ich diese
router = routers.DefaultRouter()
router.register(r'cpuProjects', cpuProjectsViewSet, base_name='cpuProjects'),
diese Rückkehr diese
"cpuProjects": "http://127.0.0.1:8000/cpuProjects/"
und ich habe die Möglichkeit, diese http://127.0.0.1:8000/cpuProjects/
=> Rückkehr alle Projekte http://127.0.0.1:8000/cpuProjects/ad
=> Rückkehr zu tun ein bestimmtes Projekt.
In meinem view.py Ich habe dieses
class cpuProjectsViewSet(viewsets.ViewSet):
serializer_class = serializers.cpuProjectsSerializer
# lookup_field = 'project_name'
lookup_url_kwarg = 'project_name'
def list(self, request):
all_rows = connect_database()
serializer = serializers.cpuProjectsSerializer(instance=all_rows, many=True)
return Response(serializer.data)
def retrieve(self, request, project_name=None):
try:
opc = {'name_proj' : project_name }
all_rows = connect_database(opc)
except KeyError:
return Response(status=status.HTTP_404_NOT_FOUND)
except ValueError:
return Response(status=status.HTTP_400_BAD_REQUEST)
serializer = serializers.cpuProjectsSerializer(instance=all_rows, many=True)
return Response(serializer.data)
Jetzt möchte ich, dass meine URL etwas wie das http://127.0.0.1:8000/cpuProjects/ad/ussing
http://127.0.0.1:8000/cpuProjects/ad/process
Dazu
http://127.0.0.1:8000/cpuProjects/ad/comments
akzeptierte ich diese neue URL hinzufügen
router.register(r'cpuProjects/([a-zA-Z0-9]+)$', cpuProjectsViewSet, base_name='cpuProjects'),
jetzt
aber wenn ich versuche, diese
http://127.0.0.1:8000/cpuProjects/ad/ussing
I „Seite nicht gefunden“ erhalten
ich verstanden, dass diese URL-Funktion abrufen aufrufen müssen, um die Parameter zu erhalten, so, warum dieser Fehler?
Diese URL nicht tun, den gleichen Prozess wie
http://127.0.0.1:8000/cpuProjects/ad
Vielen Dank im Voraus!