Django Rest Framework 2.x 튜토리얼 (5)
11781 단어 django-rest-framework파이썬장고REST-API
Requirement
AuthUser에 연결된 작업 만들기
전회 유아의 먹기 흩어져 같은 쓰레기 API를 대량 생산해 버렸으므로, 여기저기서 탄탄한 것을 만들어 봅시다.
설계 방침은 Tutorials 3에서 만든 태스크와 사용자의 그것에 가까운 것을 만드는 것입니다.
절차를 충분히 생각하면
AuthUser
에 부착된 TaskTodoItemAsAuthUser
관련 클래스 만들기 의 2개 서가 됩니다.
그러나 먼저 Swagger에서 디버깅하는 방법을 생각해야합니다. 라는 것으로 앞서 이쪽인가 접해 갑니다.
Swagger에서 로그인 확인
Django Login
의 문자가 보이네요. 이것이 로그인을 하기 위한 설정입니다.
이것을 클릭하면 로그인 화면이 뭐야! 라고 화를 낸다. 우선 로그인하려면 localhost:8000/admin
에서 로그인을 하고 거기에서 다시 localhost:8000/swagger
화면으로 돌아가야 합니다.
AuthUser 로그인이 필요한 API 만들기
모델 만들기
뇌사로 models/todoItemAsAuth.py
를 만듭니다.
from django.db import models
from .authUser import AuthUser
# Create your models here.
class TodoItemAsAuth(models.Model):
owner = models.ForeignKey(AuthUser,
to_field='username',
on_delete=models.CASCADE)
todo_name = models.CharField(max_length=100)
todo_text = models.TextField(blank=True, null=True)
dead_line = models.DateTimeField()
raise_date = models.DateTimeField(auto_now_add=True)
importance = models.IntegerField(null=True)
close_date = models.DateTimeField(blank=True, null=True)
def __str__(self):
return "{}-{}".format(self.owner, self.todo_name)
class Meta:
ordering = ('dead_line', 'raise_date')
admin에서 확인할 수 있도록 admin.py
도 작성합니다.
# ...
from .models.todoItemAsAuth import TodoItemAsAuth
# ...
admin.site.register(TodoItemAsAuth)
admin.site.register(AuthUser, UserAdmin)
Serializer 만들기
이쪽도 아무것도 생각하지 않고 쓰고 있습니다. 유일한 차이점은 ReadOnlyField
라는 수수께끼의 user 가 있다는 것입니다만, 지금은 신경쓰지 말아 주세요.
# ...
from draft_todo.models.todoItemAsAuth import TodoItemAsAuth
# ...
class TaskAuthAsAuthUserCreateSerializer(ModelSerializer):
user = serializers.ReadOnlyField(source='authuser.username')
class Meta:
model = TodoItemAsAuth
fields = ['owner', 'todo_name', 'todo_text', 'dead_line']
View 만들기
class TaskAuthUserCreateTodoItemAPIView(LoginRequiredMixin, CreateAPIView):
queryset = TodoItemAsAuth.objects.all()
serializer_class = TaskAuthAsAuthUserCreateSerializer
def perform_create(self, serializer):
serializer.save(owner=self.request.user)
LoginRequiredMixin 에 대해서는 공식 를 참고해 주세요.
이번에는 self.request.user에 사용자의 정보가 느낌에 포함되어 있다는 것을, 그것을 사용하여 serializer가 작동한다는 것을 알 수 있으면 충분합니다.
(그러나 이것, 노력하면 위장할 수 있을 것 같은 만들기를 하고 있으므로 약간 불안 재료가 남아 있네요.실제로, 어떨까요)
URL 만들기
urls.py
를 편집하십시오.
urlpatterns = [
# ...
path('draft_authuser/create_task',
dview.TaskAuthUserCreateTodoItemAPIView.as_view(),
name='dact'),
]
Swagger로 확인
Swagger에서 확인하면 로그인시 작업을 추가 할 수 있음을 알 수 있습니다. ( ) 로그인하지 않으면 다른 화면으로 건너 뜁니다. 이것은 LoginRequiredMixin
의 기능입니다.
Admin에서 확인하면 확실히 추가되었음을 알 수 있습니다.
이번에는 이런 느낌으로 짧게 끝내자. 수고하셨습니다.
Tips
LoginRequiredMixin을 함수처럼 쓰면 어떻게 될까?
공식 에 있는 것처럼, @method_decorator(login_required)
가 됩니다.
backlog
이 상태의 데이터는이 리포지토리의 release v0.1.5에 있습니다.
리포지토리
목차
Django Rest Framework 2.x 자습서(0)
Django Rest Framework 2.x 튜토리얼 (1)
Django Rest Framework 2.x 튜토리얼 (2)
Django Rest Framework 2.x 튜토리얼 (3)
Django Rest Framework 2.x 튜토리얼 (4)
Django Rest Framework 2.x 튜토리얼 (5)
Django Rest Framework 2.x 튜토리얼 (6)
Reference
이 문제에 관하여(Django Rest Framework 2.x 튜토리얼 (5)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/MeguruMokke/items/5d73cc7f8eb3a02bae90
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
모델 만들기
뇌사로
models/todoItemAsAuth.py
를 만듭니다.from django.db import models
from .authUser import AuthUser
# Create your models here.
class TodoItemAsAuth(models.Model):
owner = models.ForeignKey(AuthUser,
to_field='username',
on_delete=models.CASCADE)
todo_name = models.CharField(max_length=100)
todo_text = models.TextField(blank=True, null=True)
dead_line = models.DateTimeField()
raise_date = models.DateTimeField(auto_now_add=True)
importance = models.IntegerField(null=True)
close_date = models.DateTimeField(blank=True, null=True)
def __str__(self):
return "{}-{}".format(self.owner, self.todo_name)
class Meta:
ordering = ('dead_line', 'raise_date')
admin에서 확인할 수 있도록
admin.py
도 작성합니다.# ...
from .models.todoItemAsAuth import TodoItemAsAuth
# ...
admin.site.register(TodoItemAsAuth)
admin.site.register(AuthUser, UserAdmin)
Serializer 만들기
이쪽도 아무것도 생각하지 않고 쓰고 있습니다. 유일한 차이점은
ReadOnlyField
라는 수수께끼의 user 가 있다는 것입니다만, 지금은 신경쓰지 말아 주세요.# ...
from draft_todo.models.todoItemAsAuth import TodoItemAsAuth
# ...
class TaskAuthAsAuthUserCreateSerializer(ModelSerializer):
user = serializers.ReadOnlyField(source='authuser.username')
class Meta:
model = TodoItemAsAuth
fields = ['owner', 'todo_name', 'todo_text', 'dead_line']
View 만들기
class TaskAuthUserCreateTodoItemAPIView(LoginRequiredMixin, CreateAPIView):
queryset = TodoItemAsAuth.objects.all()
serializer_class = TaskAuthAsAuthUserCreateSerializer
def perform_create(self, serializer):
serializer.save(owner=self.request.user)
LoginRequiredMixin 에 대해서는 공식 를 참고해 주세요.
이번에는 self.request.user에 사용자의 정보가 느낌에 포함되어 있다는 것을, 그것을 사용하여 serializer가 작동한다는 것을 알 수 있으면 충분합니다.
(그러나 이것, 노력하면 위장할 수 있을 것 같은 만들기를 하고 있으므로 약간 불안 재료가 남아 있네요.실제로, 어떨까요)
URL 만들기
urls.py
를 편집하십시오.urlpatterns = [
# ...
path('draft_authuser/create_task',
dview.TaskAuthUserCreateTodoItemAPIView.as_view(),
name='dact'),
]
Swagger로 확인
Swagger에서 확인하면 로그인시 작업을 추가 할 수 있음을 알 수 있습니다. ( ) 로그인하지 않으면 다른 화면으로 건너 뜁니다. 이것은
LoginRequiredMixin
의 기능입니다.Admin에서 확인하면 확실히 추가되었음을 알 수 있습니다.
이번에는 이런 느낌으로 짧게 끝내자. 수고하셨습니다.
Tips
LoginRequiredMixin을 함수처럼 쓰면 어떻게 될까?
공식 에 있는 것처럼, @method_decorator(login_required)
가 됩니다.
backlog
이 상태의 데이터는이 리포지토리의 release v0.1.5에 있습니다.
리포지토리
목차
Django Rest Framework 2.x 자습서(0)
Django Rest Framework 2.x 튜토리얼 (1)
Django Rest Framework 2.x 튜토리얼 (2)
Django Rest Framework 2.x 튜토리얼 (3)
Django Rest Framework 2.x 튜토리얼 (4)
Django Rest Framework 2.x 튜토리얼 (5)
Django Rest Framework 2.x 튜토리얼 (6)
Reference
이 문제에 관하여(Django Rest Framework 2.x 튜토리얼 (5)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/MeguruMokke/items/5d73cc7f8eb3a02bae90
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이 상태의 데이터는이 리포지토리의 release v0.1.5에 있습니다.
리포지토리
목차
Django Rest Framework 2.x 자습서(0)
Django Rest Framework 2.x 튜토리얼 (1)
Django Rest Framework 2.x 튜토리얼 (2)
Django Rest Framework 2.x 튜토리얼 (3)
Django Rest Framework 2.x 튜토리얼 (4)
Django Rest Framework 2.x 튜토리얼 (5)
Django Rest Framework 2.x 튜토리얼 (6)
Reference
이 문제에 관하여(Django Rest Framework 2.x 튜토리얼 (5)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/MeguruMokke/items/5d73cc7f8eb3a02bae90
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Django Rest Framework 2.x 튜토리얼 (5)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/MeguruMokke/items/5d73cc7f8eb3a02bae90텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)