adding crud oppperation to my models
This commit is contained in:
@@ -1,6 +1,39 @@
|
||||
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.response import Response
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
from .models import Job
|
||||
from .serializers import JobSerializer
|
||||
from .models import Job, Note, Image, Cost, Field
|
||||
from .serializers import (
|
||||
JobSerializer,
|
||||
NoteSerializer,
|
||||
ImageSerializer,
|
||||
CostSerializer,
|
||||
FieldSerializer,
|
||||
)
|
||||
from rest_framework.viewsets import ModelViewSet
|
||||
|
||||
# Create your views here.
|
||||
|
||||
# TODO create get user data api view
|
||||
|
||||
class JobListView(APIView):
|
||||
|
||||
class CostListCreate(generics.ListCreateAPIView):
|
||||
serializer_class = CostSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
def get(self, request):
|
||||
current_user = request.user
|
||||
jobs = Job.objects.filter(user=current_user)
|
||||
serilizer = JobSerializer(jobs, many=True)
|
||||
return Response(serilizer.data)
|
||||
def get_queryset(self):
|
||||
return Cost.objects.filter(user=self.request.user)
|
||||
|
||||
def perform_create(self, serializer):
|
||||
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