TransactionManagementError в Django при выполнении миграции
Я новичок в программировании, у меня возникла проблема при выполнении миграции в Django 3.2.9.
Вот мой код, models.py
from django.db import models
from django.db.models.deletion import CASCADE, PROTECT
# Create your models here.
class Promotion(models.Model):
description = models.CharField(max_length=255)
discount = models.FloatField()
class Collection(models.Model):
title = models.CharField(max_length=255)
class Product(models.Model):
slug = models.SlugField()
title = models.CharField(max_length=255)
description = models.TextField()
unit_price = models.DecimalField(max_digits=6, decimal_places=2)
inventory = models.IntegerField()
last_update = models.DateTimeField(auto_now=True)
collection = models.ForeignKey(Collection, on_delete=models.PROTECT)
promotions = models.ManyToManyField(Promotion)
class Customer(models.Model):
MEMBERSHIP_BRONZE = 'B'
MEMBERSHIP_SILVER = 'S'
MEMBERSHIP_GOLD = 'G'
MEMBERSHIP_CHOICES = [
(MEMBERSHIP_BRONZE, 'Bronze'),
(MEMBERSHIP_SILVER, 'Silver'),
(MEMBERSHIP_GOLD, 'Gold')
]
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
email = models.EmailField(unique=True)
phone = models.CharField(max_length=255)
birth_date = models.DateField(null=True)
membership = models.CharField(
max_length=1, choices=MEMBERSHIP_CHOICES, default=MEMBERSHIP_BRONZE)
class Order(models.Model):
STATUS_Pending = 'P'
STATUS_Complete = 'C'
STATUS_Failed = 'F'
STATUS_CHOICES = [
(STATUS_Pending, 'Pending'),
(STATUS_Complete, 'Complete'),
(STATUS_Failed, 'Failed')
]
placed_at = models.DateTimeField(auto_now_date=True)
payment_status = models.CharField(
max_length=1, choices=STATUS_CHOICES, default=STATUS_Pending)
customer = models.ForeignKey(Customer, on_delete=PROTECT)
class Address(models.Model):
street = models.CharField(max_length=255)
city = models.CharField(max_length=255)
customer = models.OneToOneField(
Customer, on_delete=models.CASCADE, primary_key=True)
class OrderItem(models.Model):
order = models.ForeignKey(Order, on_delete=PROTECT)
product = models.ForeignKey(Product, on_delete=PROTECT)
quantiy = models.PositiveSmallIntegerField()
unit_price = models.DecimalField(max_digits=5, decimal_places=2)
class Cart(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
class CartItem(models.Model):
cart = models.ForeignKey(Cart, on_delete=CASCADE)
product = models.ForeignKey(Product, on_delete=CASCADE)
quantity = models.PositiveSmallIntegerField()
Я успешно выполнил : python manage.py makemigrations Но когда я запускаю:python manage.py migrate, я столкнулся с проблемой
Может ли кто-нибудь объяснить мне это? Я новичок в программировании, более 4 месяцев. Я использую Django 3.2.9.
Большое спасибо.
В папке migrations.py можно попробовать удалить вручную все файлы, кроме файла 0001_initial.py. Затем запустите,
python manage.py makemigrations <appname>
python manage.py migrate <appname>
Возможно, это решит вашу проблему.