2017-12-14 31 views
0

ドキュメントからdjangoプロジェクトを試しています。 これは私のModels.py私は単純な従業員の目標管理システムを作ろうとしています。私はDRFとシリアライザも使用しました。下のモデルの 'GET'だけを行うための統合されたスガーガーです。私はすべてのForeignKeyとManyToManyフィールドを削除(コメントアウト)しました。目標やプロジェクトを変更して追加すると、このエラーが発生します。私はこれを解決するように思わない、助けてください。NOT NULL制約に失敗しました:IntegrityError

class Department(models.Model): 
    department_name = models.CharField(max_length=200) 
    department_location = models.CharField(max_length=200) 
    department_region = models.CharField(max_length=200) 
    department_site = models.CharField(max_length=200) 
    department_job_titles = models.CharField(max_length=200) 

    def __str__(self): 
     return self.department_name 


class Employee(models.Model): 
    #department_name = models.ManyToManyField(Department) 
    first_name = models.CharField(max_length=200) 
    last_name = models.CharField(max_length=200) 
    email_id = models.CharField(max_length=100) 
    #employee_id = models.IntegerField() 
    supervisor_name = models.CharField(max_length=100) 
    designation = models.CharField(max_length=100) 
    doj = models.DateTimeField('date joined') 

    def __str__(self): 
     return self.first_name 

class Objectives(models.Model): 
    objective_name = models.CharField(max_length=200) 
    #employee = models.ManyToManyField(Employee) 

    def __str__(self): 
     return self.objective_name 


class Project(models.Model): 
    #employee = models.ManyToManyField(Employee) 
    project_name = models.CharField(max_length=200) 

    def __str__(self): 
     return self.project_name 

class Goals(models.Model): 
    goal_id = models.IntegerField() 
    goal_name = models.CharField(max_length=200) 
    #department = models.ManyToManyField(Department) 
    role = models.CharField(max_length=200) 
    #objective_id = models.ManyToManyField(Objectives) 
    goal_start = models.DateTimeField('date goal added') 
    goal_end = models.DateTimeField('date goal ends') 
    #employee = models.ManyToManyField(Employee) 

    def __str__(self): 
     return self.goal_name 

これはこれはこれは

私serializers.pyある
from django.conf.urls import include, url 
from django.contrib import admin 
from enterprise import views 


urlpatterns = [ 

    url(r'^$', views.schema_view, name='schema_view'), 
    url(r'^enterprise/', include('enterprise.urls')), 
    url(r'^admin/', admin.site.urls), 
    url(r'^employee/', views.Employee.as_view()), 
    url(r'^goals/', views.Goals.as_view()), 
    url(r'^department/', views.Department.as_view()), 
    url(r'^department/', views.Department.as_view()), 
    url(r'^objectives/', views.Objectives.as_view()), 
    url(r'^project/', views.Project.as_view()), 

] 

urls.py/myprojectにある私のviews.py

from django.shortcuts import get_object_or_404 
from rest_framework.views import APIView 
from rest_framework.response import Response 
from rest_framework import status 
from .models import Employee 
from .models import Goals 
from .models import Objectives 
from .models import Department 
from .models import Project 
from .serializers import EmployeeSerializer 
from .serializers import ProjectSerializer 
from .serializers import GoalsSerializer 
from .serializers import ObjectivesSerializer 
from .serializers import DepartmentSerializer 
from django.http import HttpResponse 
from rest_framework_swagger.views import get_swagger_view 


schema_view = get_swagger_view(title='UpYourGame API') 

#just a view if someone hits the index 
def index(request): 
    return HttpResponse("Hello and Welcome to UpyourGame") 


# this will be the URL /employee/ 
class Employee(APIView): 

    def get(self, request): 
     employee = Employee.objects.all() 
     serializer = EmployeeSerializer(employee, many=True) 
     return Response(serializer.data) 

class Project(APIView): 
    def get(self, request): 
     project = Project.objects.all() 
     serializer = ProjectSerializer(project, many=True) 
     return Response(serializer.data) 


class Goals(APIView): 

    def get(self, request): 
     goals = Goals.objects.all() 
     serializer = GoalsSerializer(goals, many=True) 
     return Response(serializer.data) 

class Objectives(APIView): 
    def get(self, request): 
     objectives = Objectives.objects.all() 
     serializer = ObjectivesSerializer(objectives, many=True) 
     return Response(serializer.data) 

#class Company(APIView): 
# def get(self, request): 
    #  company = Company.objects.all() 
    #  serializer = CompanySerializer(company, many=False) 
    # return Response(serializer.data) 

class Department(APIView): 
    def get(self, request): 
     department = Department.objects.all() 
     serializer = DepartmentSerializer(Department, many=True) 
     return Response(serializer.data) 

です

答えて

0

SQLlite DBの移行が多すぎるために壊れていました。私はSQLliteとすべての移行を削除し、移行、makemigrate、sqlmigrateを再試行して問題を解決しました。あなたはDEV環境で同様の問題に遭遇した場合 は 2. db.sqlite3 3.ファイル名を指定して実行python manage.py migrate 4.ファイル名を指定して実行python manage.py makemigrations 5.実行python manage.py sqlmigrate appname 0001

に削除し、次の 1. migrationsフォルダ内のすべてのあなたの移行を削除してみてください

これでこの問題が解決されます。

関連する問題