Django 사용자 모델 외래 키 문제 수정

케이트 고드프리

내장 django 사용자 모델을 사용하고 있습니다. 계속 오류가 나네요django.db.utils.IntegrityError: FOREIGN KEY constraint failed

다른 모델에서는 사용자 모델을 사용하지 않았으며 그 반대의 경우도 마찬가지입니다.

models.py는 이렇게 생겼습니다.

from django.contrib.auth.models import User
from django.utils import timezone
from django.db.models import CharField
from django.db.models import BooleanField
from django.db.models import TextField
from django.db.models import DateTimeField

class Course(models.Model): 
    id = models.AutoField(primary_key=True)
    name = CharField(max_length=100)

class Project(models.Model):
    id = models.AutoField(primary_key=True)
    desc = CharField(max_length=150)
    name = CharField(max_length=50)
    storyboard_file_path = TextField()
    storyboard_completed = BooleanField(default=False)
    filming_complete = BooleanField(default=False)
    audio_complete = BooleanField(default=False)
    production_complete = BooleanField(default=False)
    aggregation_complete = BooleanField(default=False)
    video_file_path = TextField()
    final_review_complete = BooleanField(default=False)
    course = models.ForeignKey(Course, on_delete=models.CASCADE, related_name="projects", null=True, blank=True)

class Status(models.Model):
    status_id = models.IntegerField(primary_key=True)
    desc = CharField(max_length=150)
    name = CharField(max_length=50)

class Event(models.Model):
    project_id = models.ForeignKey(Project, on_delete=models.CASCADE, null=True, blank=True)
    status_id = models.ForeignKey(Status, on_delete=models.CASCADE, null=True, blank=True)
    datetime = models.DateTimeField(auto_now_add=True, blank=True)

serializers.py는 다음과 같습니다.

from rest_framework import serializers
from .models import Event
from .models import Project
from .models import Course
from rest_framework_jwt.settings import api_settings


class UserSerializer(serializers.ModelSerializer):

    class Meta:
        model = User
        fields = ('id', 
        "password",
        "last_login",
        "is_superuser",
        "username",
        "first_name",
        "last_name",
        "email",
        "is_staff",
        "is_active",
        "date_joined",
        "groups",
        "user_permissions")

    def create(self, validated_data):
        password = validated_data.pop('password', None)
        instance = self.Meta.model(**validated_data)
        if password is not None:
            instance.set_password(password)
        instance.save()
        return instance

    def update(self, instance, validated_data):
        for attr, value in validated_data.items():
            if attr == 'password':
                instance.set_password(value)
            else:
                setattr(instance, attr, value)
        instance.save()
        return instance

    def get_jwt_token(user):
        jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
        jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER

        payload = jwt_payload_handler(user)
        return jwt_encode_handler(payload)

class ProjectSerializer(serializers.ModelSerializer):
    class Meta:
        model = Project
        fields = ('id', 'desc', 'name', 'storyboard_file_path', 
        'storyboard_completed', 'filming_complete', 'audio_complete',  
        'production_complete', 'aggregation_complete', 'video_file_path',
        'final_review_complete', 'course')

    def create(self, validated_data):
        instance = self.Meta.model(**validated_data)
        instance.save()
        return instance

    def update(self, instance, validated_data):
        for attr, value in validated_data.items():
                setattr(instance, attr, value)
        instance.save()
        return instance

class CouserSerializer(serializers.ModelSerializer):
    projects = ProjectSerializer(many=True, read_only=True)

    class Meta:
        model = Course
        fields = ('id', 'name', 'projects')

    def create(self, validated_data):
        instance = self.Meta.model(**validated_data)
        instance.save()
        return instance

고정 장치에 로드하려고 합니다.

{
    "model": "auth.user",
    "pk": 1,
    "fields": {
        "password": "pbkdf2_sha256$120000$V2isoXl1Q88l$sVuB+25I6UNNLY76Ti0EixAu/Ucimqi7rFpbadDzqzc=",
        "last_login": null,
        "is_superuser": true,
        "username": "[email protected]",
        "first_name": "Admin",
        "last_name": "User",
        "email": "[email protected]",
        "is_staff": true,
        "is_active": true,
        "date_joined": "2019-04-16T00:16:13.252Z",
        "groups": [1],
        "user_permissions": []
    }
},
{
    "model": "auth.user",
    "pk": 2,
    "fields": {
        "password": "pbkdf2_sha256$120000$6YHv5JMayFnN$+Y2TqedyjZq02kEw/0ZaXtyigzaH2+BRUIqqkSeAG90=",
        "last_login": null,
        "is_superuser": false,
        "username": "[email protected]",
        "first_name": "Content",
        "last_name": "Manager",
        "email": "[email protected]",
        "is_staff": true,
        "is_active": true,
        "date_joined": "2019-04-16T00:19:01.130Z",
        "groups": [2],
        "user_permissions": []
    }
}
]

이 외래 키 오류가 어디에서 왔는지 이해할 수 없습니다. 도움을 주시면 감사하겠습니다.

마크 베일리

아마도 그룹일 것입니다. 해당 그룹이 존재합니까(사용자 이전에). 그렇지 않으면 이 오류가 발생합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

TOP 리스트

  1. 1

    셀레늄의 모델 대화 상자에서 텍스트를 추출하는 방법은 무엇입니까?

  2. 2

    Webpack 4가 분할 모듈로 취급하는 원시 JSON 파일을 배포하는 방법은 무엇입니까?

  3. 3

    Windows에서 Apache Kafka 오류-주 클래스 QuorumPeerMain을 찾거나로드 할 수 없습니다.

  4. 4

    Zookeeper Cluster를 시작합니다. 오류 : 주 클래스 org.apache.zookeeper.server.quorum.QuorumPeerMain을 찾거나로드 할 수 없습니다.

  5. 5

    어떻게 reslove: InvalidArgumentError: 그래프 실행 오류가 발생합니까?

  6. 6

    PyCharm에서 프로젝트를 제거하는 방법은 무엇입니까?

  7. 7

    Python : 특정 범위를 초과하면 플롯의 선 색상을 변경할 수 있습니까?

  8. 8

    동적 링크 작동 방식, 사용법 및 dylib를 만드는 방법과 이유

  9. 9

    화살표와 테두리가있는 CSS 전용 툴팁

  10. 10

    웹 사이트 로딩 속도를 높이는 방법을 알려주세요.

  11. 11

    응답에 대한 JMESPath 필터링

  12. 12

    D3 JS에서 하프 도넛 원형 차트 값 표시

  13. 13

    Joomla 3의 단일 기사에서 소셜 미디어 아이콘을 게시 취소하는 방법은 무엇입니까?

  14. 14

    scipy.misc 이미지 함수의 AttributeError, ImportError (예 : imread, imresize, imsave, imshow 등)

  15. 15

    Xcode 6 Beta 4 Broke stringWithContentsOfURL : encoding : error :

  16. 16

    Java에서 HSSFCell의 최대 길이 늘리기

  17. 17

    Mac에서 python import nltk 오류

  18. 18

    오류 CS0019 : '<'연산자를 'string'및 'int'유형의 피연산자에 적용 할 수 없습니다.

  19. 19

    Libavformat은 RTP 스트림을 너무 빠르게 기록합니다(너무 높은 FPS).

  20. 20

    Linux 시스템에 대해 OPEN_MAX는 어디에 정의되어 있습니까?

  21. 21

    스프링 부트에서 application.properties 값을 동적으로 변경

뜨겁다태그

보관