У меня постоянная ошибка 'FOREIGN KEY CONSTRAINT failed' в приложении корзины, это проблема с моделями?
Я работаю с группой, пытающейся создать некую библиотеку. Мы используем django для создания веб-приложения, но я постоянно вижу, что возникает эта ошибка. введите описание изображения здесь
Вот модель, которую я использую в приложении "Корзина":
from django.db import models
from video_rental.models import Movie, CustomUser
from django.conf import settings
class CartItem(models.Model):
movie = models.ForeignKey(Movie, on_delete=models.CASCADE)
quantity = models.PositiveIntegerField(default=0)
user = models.ForeignKey(CustomUser, on_delete=models.CASCADE)
date_added = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f'{self.quantity} x {self.movie.title}'
Вот мнения:
from django.shortcuts import render
from django.shortcuts import render, redirect
from .models import CartItem
from video_rental.models import Movie
def movie_list(request):
movies = Movie.objects.all()
return render(request, 'myapp/index.html', {'products': movies})
def view_cart(request):
cart_items = CartItem.objects.filter(user=request.user)
return render(request, 'myapp/cart.html', {'cart_items': cart_items})
def add_to_cart(request, title):
movie= Movie.objects.get(title=title)
cart_item, created = CartItem.objects.get_or_create(movie=movie, user=request.user)
cart_item.quantity += 1
cart_item.save()
return redirect('cart:view_cart')
def remove_from_cart(request, title):
cart_item = CartItem.objects.get(title=title)
cart_item.delete()
return redirect('cart:view_cart')
def home(request):
return HttpResponse('Hello, World!')
Это постоянно происходит в панели администратора, когда я пытаюсь добавить вещи в корзину и сохранить ее. Что мне делать дальше? Movie определен в приложении video_rental, поэтому я импортировал модель оттуда. Мне интересно, что это за ошибка Foreign Key и как я могу заставить ее работать.
Я пробовал решить эту проблему, исправив файл модели (я понял, что пользователь, указанный в модели, был пользователем, который никогда не был определен, поэтому я снова импортировал модель, которая использовалась в приложении video_rental). Однако это, похоже, не помогло.
Попробуйте определить модели, на которые ссылается внешний ключ, в том же файле video_rental.models. Если video_rental является отдельным приложением Django, то это поддерживается, см. этот пост Foreign key from one app into another in Django. Синтаксис для передачи в class.