を私はアサイは、私は、サーバーを実行したときに を譲受人にタスクを割り当てると、私はこのエラーを取得するタスクを追加しようとすることができるアプリを作っています:rest_framework NOT NULL制約に失敗しました:tasks_tasks.assigner_id
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作業のチュートリアルでは、そのように行われていた、私はウルの提案をしましたしかし、今私は別の問題を持っています。割り当て担当者を選ぶ必要があり、自動的に宣言されません。とにかく問題が解決され、私は今すぐ仕事を追加することができます –
その作品はあなたが私の答えを受け入れることができますか? – FraserES
それは自動的には何ですか? – FraserES