Я пытаюсь добавить данные из панели администратора, но это не удается Django - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь добавить данные как администратор. Я go на URL / admin / festival / festival / add , и он показывает мне форму. Я заполняю ее, но когда я нажимаю на кнопку сохранения, он показывает мне IntegrityError, говоря, что ограничение внешнего ключа не удалось , Но у меня нет внешнего ключа в модели. Как я могу это исправить?

IntegrityError at /admin/festival/festival/add/

FOREIGN KEY constraint failed

Request Method:     POST
Request URL:    http://127.0.0.1:8000/admin/festival/festival/add/
Django Version:     3.0.4
Exception Type:     IntegrityError
Exception Value:    

FOREIGN KEY constraint failed

Exception Location:     /home/anamaria/workspace/AllFest2/venv/lib/python3.6/site-packages/django/db/backends/base/base.py in _commit, line 243
Python Executable:  /home/anamaria/workspace/AllFest2/venv/bin/python
Python Version:     3.6.9
Python Path:    

['/home/anamaria/workspace/AllFest2/festivals',
 '/usr/lib/python36.zip',
 '/usr/lib/python3.6',
 '/usr/lib/python3.6/lib-dynload',
 '/home/anamaria/workspace/AllFest2/venv/lib/python3.6/site-packages']

вот это models.py :

from django.db import models
from jsonfield import JSONField


class Festival(models.Model):
    name = models.CharField(max_length=100)
    start_date = models.DateTimeField(blank=True, null=True, default=None)
    end_date = models.DateTimeField(blank=True, null=True, default=None)
    number_of_tickets = models.IntegerField()
    location = JSONField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.name

в views.py у меня есть:

from .serializers import FestivalSerializer
from .permissions import FestivalPermission
from rest_framework import mixins, status
from festival.models import Festival
from rest_framework.viewsets import GenericViewSet


class FestivalViewSet(mixins.CreateModelMixin, mixins.ListModelMixin, mixins.RetrieveModelMixin, mixins.UpdateModelMixin,GenericViewSet):
    serializer_class = FestivalSerializer
    permission_classes = [FestivalPermission]
    queryset = Festival.objects.all()

сериализатор в serializers.py :

from rest_framework import serializers
from festival.models import Festival


class FestivalSerializer(serializers.BaseSerializer):

    class Meta:
        model = Festival
        fields = '__all__'

файл admin.py :

from django.contrib import admin
from .models import Festival

class FestivalAdmin(admin.ModelAdmin):
    list_display = ('name', )

    def save_model(self, request, obj, form, change):
        super(FestivalAdmin, self).save_model(request, obj, form, change)

# Register your models here.
admin.site.register(Festival, FestivalAdmin)
...