adding crud oppperation to my models
This commit is contained in:
@@ -1,6 +1,39 @@
|
|||||||
from django.urls import path
|
from django.urls import path
|
||||||
from .views import JobListView
|
from .views import (
|
||||||
|
JobListCreate,
|
||||||
|
JobDetail,
|
||||||
|
NoteListCreate,
|
||||||
|
NoteDetails,
|
||||||
|
ImageListCreate,
|
||||||
|
ImageDetail,
|
||||||
|
CostListCreate,
|
||||||
|
CostDetail,
|
||||||
|
FieldListCreate,
|
||||||
|
FieldDetail,
|
||||||
|
)
|
||||||
|
|
||||||
urlpatterns = [
|
|
||||||
path("jobs/v1/", JobListView.as_view()),
|
def register_crud_urls(prefix, list_view, detail_view):
|
||||||
]
|
return [
|
||||||
|
path(f"{prefix}/", list_view.as_view(), name=f"{prefix}-list-create"),
|
||||||
|
path(f"{prefix}/<int:pk>/", detail_view.as_view(), name=f"{prefix}-detail"),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
urlpatterns = []
|
||||||
|
|
||||||
|
urlpatterns += register_crud_urls("jobs", JobListCreate, JobDetail)
|
||||||
|
urlpatterns += register_crud_urls("notes", NoteListCreate, NoteDetails)
|
||||||
|
urlpatterns += register_crud_urls("images", ImageListCreate, ImageDetail)
|
||||||
|
urlpatterns += register_crud_urls("costs", CostListCreate, CostDetail)
|
||||||
|
urlpatterns += register_crud_urls("fields", FieldListCreate, FieldDetail)
|
||||||
|
|
||||||
|
|
||||||
|
# urlpatterns = [
|
||||||
|
# path("jobs/", JobListCreate.as_view(), name="job-createlist"),
|
||||||
|
# path("jobs/<int:pk>/", JobDetail.as_view(), name="job-detail"),
|
||||||
|
# path("notes/", NoteListCreate.as_view(), name="note-createlist"),
|
||||||
|
# path("notes/<int:pk>/", NoteDetails.as_view(), name="note-detail"),
|
||||||
|
# path("images/", ImageListCreate.as_view(), name="image-createlist"),
|
||||||
|
# path("images/<int:pk>/", ImageDetail.as_view(), name="image-detail"),
|
||||||
|
# ]
|
||||||
|
|||||||
117
field/views.py
117
field/views.py
@@ -1,19 +1,118 @@
|
|||||||
from django.shortcuts import render
|
from django.shortcuts import render, get_object_or_404
|
||||||
|
from rest_framework import status, generics
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.permissions import IsAuthenticated
|
from rest_framework.permissions import IsAuthenticated
|
||||||
from .models import Job
|
from .models import Job, Note, Image, Cost, Field
|
||||||
from .serializers import JobSerializer
|
from .serializers import (
|
||||||
|
JobSerializer,
|
||||||
|
NoteSerializer,
|
||||||
|
ImageSerializer,
|
||||||
|
CostSerializer,
|
||||||
|
FieldSerializer,
|
||||||
|
)
|
||||||
from rest_framework.viewsets import ModelViewSet
|
from rest_framework.viewsets import ModelViewSet
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
||||||
|
# TODO create get user data api view
|
||||||
|
|
||||||
class JobListView(APIView):
|
|
||||||
|
class CostListCreate(generics.ListCreateAPIView):
|
||||||
|
serializer_class = CostSerializer
|
||||||
permission_classes = [IsAuthenticated]
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
def get(self, request):
|
def get_queryset(self):
|
||||||
current_user = request.user
|
return Cost.objects.filter(user=self.request.user)
|
||||||
jobs = Job.objects.filter(user=current_user)
|
|
||||||
serilizer = JobSerializer(jobs, many=True)
|
def perform_create(self, serializer):
|
||||||
return Response(serilizer.data)
|
serializer.save(user=self.request.user) # assign user automatically
|
||||||
|
|
||||||
|
|
||||||
|
class CostDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||||
|
serializer_class = CostSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
# Ensure user can only access their own notes
|
||||||
|
return Cost.objects.filter(user=self.request.user)
|
||||||
|
|
||||||
|
|
||||||
|
class FieldListCreate(generics.ListCreateAPIView):
|
||||||
|
serializer_class = FieldSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return Field.objects.filter(user=self.request.user)
|
||||||
|
|
||||||
|
def perform_create(self, serializer):
|
||||||
|
serializer.save(user=self.request.user) # assign user automatically
|
||||||
|
|
||||||
|
|
||||||
|
class FieldDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||||
|
serializer_class = FieldSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
# Ensure user can only access their own notes
|
||||||
|
return Field.objects.filter(user=self.request.user)
|
||||||
|
|
||||||
|
|
||||||
|
class ImageListCreate(generics.ListCreateAPIView):
|
||||||
|
serializer_class = ImageSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return Image.objects.filter(user=self.request.user)
|
||||||
|
|
||||||
|
def perform_create(self, serializer):
|
||||||
|
serializer.save(user=self.request.user) # assign user automatically
|
||||||
|
|
||||||
|
|
||||||
|
class ImageDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||||
|
serializer_class = ImageSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
# Ensure user can only access their own notes
|
||||||
|
return Image.objects.filter(user=self.request.user)
|
||||||
|
|
||||||
|
|
||||||
|
class NoteListCreate(generics.ListCreateAPIView):
|
||||||
|
serializer_class = NoteSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return Note.objects.filter(user=self.request.user)
|
||||||
|
|
||||||
|
def perform_create(self, serializer):
|
||||||
|
serializer.save(user=self.request.user) # assign user automatically
|
||||||
|
|
||||||
|
|
||||||
|
class NoteDetails(generics.RetrieveUpdateDestroyAPIView):
|
||||||
|
serializer_class = NoteSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
# Ensure user can only access their own notes
|
||||||
|
return Note.objects.filter(user=self.request.user)
|
||||||
|
|
||||||
|
|
||||||
|
class JobListCreate(generics.ListCreateAPIView):
|
||||||
|
serializer_class = JobSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return Job.objects.filter(user=self.request.user)
|
||||||
|
|
||||||
|
def perform_create(self, serializer):
|
||||||
|
serializer.save(user=self.request.user) # assign user automatically
|
||||||
|
|
||||||
|
|
||||||
|
class JobDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||||
|
serializer_class = JobSerializer
|
||||||
|
permission_classes = [IsAuthenticated]
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
# Ensure user can only access their own notes
|
||||||
|
return Job.objects.filter(user=self.request.user)
|
||||||
|
|||||||
Reference in New Issue
Block a user