Create: api prototype
This commit is contained in:
		
							parent
							
								
									3b1b42d483
								
							
						
					
					
						commit
						3e969de57f
					
				
							
								
								
									
										24
									
								
								logs_collector/collector/serializers.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								logs_collector/collector/serializers.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | ||||
| from rest_framework import serializers | ||||
| 
 | ||||
| from .models import Archive, Ticket | ||||
| 
 | ||||
| 
 | ||||
| class ArchiveUploadSerializer(serializers.ModelSerializer): | ||||
|     ticket_number = serializers.ReadOnlyField(source='ticket.number') | ||||
| 
 | ||||
|     class Meta: | ||||
|         model = Archive | ||||
|         fields = ['file', 'ticket', 'ticket_number'] | ||||
| 
 | ||||
|     def to_internal_value(self, data): | ||||
|         try: | ||||
|             ticket = Ticket.objects.get(number=data['ticket']) | ||||
|             data['ticket'] = ticket.id | ||||
|             return super().to_internal_value(data) | ||||
|         except Exception: | ||||
|             return super().to_internal_value(data) | ||||
| 
 | ||||
|     def to_representation(self, instance): | ||||
|         data = super().to_representation(instance) | ||||
|         data['ticket'] = data.pop('ticket_number') | ||||
|         return data | ||||
| @ -1,8 +1,14 @@ | ||||
| from django.urls import path | ||||
| from django.urls import path, include | ||||
| 
 | ||||
| from rest_framework import routers | ||||
| 
 | ||||
| from . import views | ||||
| 
 | ||||
| app_name = 'collector' | ||||
| 
 | ||||
| router = routers.DefaultRouter() | ||||
| router.register(r'archives', views.ArchiveUploadViewSet) | ||||
| 
 | ||||
| urlpatterns = [ | ||||
| 
 | ||||
|     # █░█░█ █▀▀ █▄▄ | ||||
| @ -64,4 +70,12 @@ urlpatterns = [ | ||||
|         views.DeleteTicketHandler.as_view(), | ||||
|         name='ajax_delete_ticket' | ||||
|     ), | ||||
| 
 | ||||
| 
 | ||||
|     # ▄▀█ █▀█ █ | ||||
|     # █▀█ █▀▀ █ | ||||
|     # -- -- -- | ||||
| 
 | ||||
|     # CREATE: | ||||
|     path('api/v1/', include(router.urls)) | ||||
| ] | ||||
|  | ||||
| @ -7,12 +7,17 @@ from django.urls import reverse_lazy | ||||
| from django.db.models import Q | ||||
| 
 | ||||
| from rest_framework import status | ||||
| # from rest_framework.response import Response | ||||
| from rest_framework.parsers import FormParser, MultiPartParser | ||||
| 
 | ||||
| from rest_framework import mixins | ||||
| from rest_framework.viewsets import GenericViewSet | ||||
| 
 | ||||
| from .models import Archive, Ticket | ||||
| from .forms import TicketForm | ||||
| from .utils import PageTitleViewMixin, is_ajax | ||||
| 
 | ||||
| from .serializers import ArchiveUploadSerializer | ||||
| 
 | ||||
| 
 | ||||
| class ArchiveHandlerView(LoginRequiredMixin, SingleObjectMixin, generic.View): | ||||
|     model = Archive | ||||
| @ -54,6 +59,7 @@ class UpdateTicket(LoginRequiredMixin, PageTitleViewMixin, generic.UpdateView): | ||||
|         return f'{self.title} - {self.kwargs.get("ticket", "update")}' | ||||
| 
 | ||||
|     def form_valid(self, form): | ||||
|         print(self.request.user) | ||||
|         form.instance.user = self.request.user | ||||
|         return super().form_valid(form) | ||||
| 
 | ||||
| @ -164,3 +170,13 @@ class DeleteTicketHandler(SingleObjectMixin, generic.View): | ||||
|             {'error': 'header XMLHttpRequest is required'}, | ||||
|             status=status.HTTP_406_NOT_ACCEPTABLE | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| class ArchiveUploadViewSet(mixins.CreateModelMixin, GenericViewSet): | ||||
|     queryset = Archive.objects.order_by('-time_create') | ||||
|     serializer_class = ArchiveUploadSerializer | ||||
|     parser_classes = (MultiPartParser, FormParser) | ||||
|     # permission_classes = [permissions.IsAuthenticatedOrReadOnly] | ||||
| 
 | ||||
|     def perform_create(self, serializer): | ||||
|         serializer.save(user=self.request.user) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user