내가 지정 기 내가 서버를 실행할 때 작업 을 할당 된 사용자 할당하고 난이 오류가 작업을 추가 할 수있는 응용 프로그램을 만드는 중이라서 : tasks_tasks.assigner_id 여기 rest_framework는 NULL 제약 조건이 실패하지 :</p> <p>NOT NULL 제약 조건이 실패 tasks_tasks.assigner_id
내 전망이다 : 여기from rest_framework import viewsets, permissions
from .models import Tasks
from .serializers import TasksSerializer, UserSerializer
from django.contrib.auth.models import User
class UserViewSet(viewsets.ReadOnlyModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
class TasksViewSet(viewsets.ModelViewSet):
queryset = Tasks.objects.all()
serializer_class = TasksSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
def prefrom_create(self, serializer):
serializer.save(self, assigner=self.request.user)
내 serializers.py입니다
from rest_framework import serializers
from .models import Tasks
from django.contrib.auth.models import User
class TasksSerializer(serializers.ModelSerializer):
assigner = serializers.ReadOnlyField(source='assigner.username')
class Meta:
model = Tasks
fields = ('id', 'url', 'title', 'description', 'assigner', 'assignee')
class UserSerializer(serializers.ModelSerializer):
tasks = serializers.HyperlinkedIdentityField(many=True, view_name='tasks_details', read_only=True)
class Meta:
model = User
fields = ('id', 'url', 'username', 'tasks')
그리고 마지막으로 내 models.py : 당신은 소스와 assigner
읽기 전용 필드를했습니다
from django.db import models
class Tasks(models.Model):
created = models.DateTimeField(auto_now_add=True)
title = models.CharField(max_length=100)
description = models.TextField()
assigner = models.ForeignKey('auth.User', related_name='tasks', on_delete=models.CASCADE)
assignee = models.ForeignKey('auth.User', related_name='assigned', on_delete=models.CASCADE)
class Meta:
ordering = ('created',)
rest_frame 작업 튜토리얼을, 나는 UR 제안을했다 ,하지만 지금은 할당자를 선택해야하는 또 다른 문제가 발생하고 자동으로 선언되지 않습니다. 그러나 문제는 어쨌든 해결되고 나는 이제 과제를 추가 할 수 있습니다. –
그 작품이 내 대답을 받아 들일 수 있겠습니까? – FraserES
그것은 자동으로 무엇이 아닙니다? – FraserES