简体   繁体   中英

FOREIGN KEY constraint failed

Using Django 2.0.5 I've encountered a problem with admin panel. Adding or saveing data through admin panel gives 'django.db.utils.IntegrityError: FOREIGN KEY constraint failed' error. In model there is no foreign key that this could refer to.

models.py

class JobTitle(models.Model):
    job_title = models.CharField(max_length=200)

admin.py

class JobTitleAdmin(admin.ModelAdmin):
    list_display = ['job_title',]
admin.site.register(JobTitle, JobTitleAdmin)

Adding the same data with PUSH from frontend is working, only from admin panel gives this error.

EDIT:

Environment:


Request Method: POST
Request URL: http://localhost:8000/admin/login_app/locations/add/

Django Version: 2.0.5
Python Version: 3.6.4
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'rest_framework',
 'rest_framework.authtoken',
 'login_app',
 'corsheaders',
 'rest_auth']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'corsheaders.middleware.CorsMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:

File "/usr/local/lib/python3.6/site-packages/django/db/backends/base/base.py" in _commit
  239.                 return self.connection.commit()

The above exception (FOREIGN KEY constraint failed) was the direct cause of the following exception:

File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
  35.             response = get_response(request)

File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  128.                 response = self.process_exception_by_middleware(e, request)

File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  126.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/usr/local/lib/python3.6/site-packages/django/contrib/admin/options.py" in wrapper
  574.                 return self.admin_site.admin_view(view)(*args, **kwargs)

File "/usr/local/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapped_view
  142.                     response = view_func(request, *args, **kwargs)

File "/usr/local/lib/python3.6/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
  44.         response = view_func(request, *args, **kwargs)

File "/usr/local/lib/python3.6/site-packages/django/contrib/admin/sites.py" in inner
  223.             return view(request, *args, **kwargs)

File "/usr/local/lib/python3.6/site-packages/django/contrib/admin/options.py" in add_view
  1553.         return self.changeform_view(request, None, form_url, extra_context)

File "/usr/local/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapper
  62.             return bound_func(*args, **kwargs)

File "/usr/local/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapped_view
  142.                     response = view_func(request, *args, **kwargs)

File "/usr/local/lib/python3.6/site-packages/django/utils/decorators.py" in bound_func
  58.                 return func.__get__(self, type(self))(*args2, **kwargs2)

File "/usr/local/lib/python3.6/site-packages/django/contrib/admin/options.py" in changeform_view
  1450.             return self._changeform_view(request, object_id, form_url, extra_context)

File "/usr/local/lib/python3.6/site-packages/django/db/transaction.py" in __exit__
  212.                         connection.commit()

File "/usr/local/lib/python3.6/site-packages/django/db/backends/base/base.py" in commit
  261.         self._commit()

File "/usr/local/lib/python3.6/site-packages/django/db/backends/base/base.py" in _commit
  239.                 return self.connection.commit()

File "/usr/local/lib/python3.6/site-packages/django/db/utils.py" in __exit__
  89.                 raise dj_exc_value.with_traceback(traceback) from exc_value

File "/usr/local/lib/python3.6/site-packages/django/db/backends/base/base.py" in _commit
  239.                 return self.connection.commit()

Exception Type: IntegrityError at /admin/login_app/locations/add/
Exception Value: FOREIGN KEY constraint failed

AFAIK the admin interface also provised some sort of history tracking (eg the time when an object has been saved).

Since the FK error doesn't seem to pop up from your code (based on the trace), I believe you need to (re)run manage.py migrate (or even makemigrations ) to update your DB layout.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM