Возникают ошибки при попытке миграции на базу данных в django
Я пытаюсь перенести свои модели django, но получаю 4 ошибки:
auth.User.groups: (fields.E304) Reverse accessor 'Group.user_set' for
'auth.User.groups'
clashes with reverse accessor for 'products.Customer.groups'.
HINT: Add or change a related_name argument to the definition for 'auth.User.groups'
or 'products.Customer.groups'.
auth.User.user_permissions: (fields.E304) Reverse accessor 'Permission.user_set' for
'auth.User.user_permissions' clashes with reverse accessor for
'products.Customer.user_permissions'.
HINT: Add or change a related_name argument to the definition for
'auth.User.user_permissions' or 'products.Customer.user_permissions'.
products.Customer.groups: (fields.E304) Reverse accessor 'Group.user_set' for
'products.Customer.groups' clashes with reverse accessor for 'auth.User.groups'.
HINT: Add or change a related_name argument to the definition for
'products.Customer.groups' or 'auth.User.groups'.
products.Customer.user_permissions: (fields.E304) Reverse accessor
'Permission.user_set' for 'products.Customer.user_permissions' clashes with reverse
accessor for 'auth.User.user_permissions'.
HINT: Add or change a related_name argument to the definition for
'products.Customer.user_permissions' or 'auth.User.user_permissions'.
Я не уверен, в чем дело, потому что я изменил все связанные_имена в Foreign_Keys. Может кто-нибудь сможет помочь мне с этим, пожалуйста.
Заранее спасибо :)
Вот мой файл models.py:
class Product(models.Model):
product_id = models.UUIDField("A Product id", default=uuid.uuid4, editable=False)
name = models.CharField(max_length=30, null=False, blank=False)
description = models.CharField(max_length=500, null=True, default='')
price = models.DecimalField('A price', null=False, blank=False, max_digits=4, decimal_places=2)
image = models.ImageField(verbose_name='An image of the product', upload_to="img/")
date_created = models.DateTimeField(auto_now_add=True)
def get_absolute_url(self):
return '/products/'
def __repr__(self):
return f'{self.id} {self.description} {self.price} '
@staticmethod
def get_products_by_id(ids):
return Product.objects.filter(id__in=ids)
@staticmethod
def get_all_products():
return Product.objects.all()
@staticmethod
def get_all_products_by_categoryid(category_id):
if category_id:
return Product.objects.filter(category=category_id)
else:
return Product.get_all_products()
class Meta:
verbose_name = 'Product'
verbose_name_plural = 'Products'
class Category(models.Model):
name = models.CharField(max_length=30, null=False, blank=False)
category_id = models.UUIDField("A Category id", default=uuid.uuid4, editable=False)
@staticmethod
def get_all_categories():
return Category.objects.all()
def __str__(self):
return self.name
class Meta:
verbose_name = 'Category'
verbose_name_plural = 'Categories'
class Customer(AbstractUser):
USERNAME_FIELD = 'username'
REQUIRED_FIELDS = ['email', 'password', 'last_name']
profile = models.OneToOneField("Profile", related_name="user_profile",
on_delete=models.CASCADE)
first_name = models.CharField(max_length=50, null=False, blank=False)
last_name = models.CharField(max_length=50, null=False, blank=False)
username = models.CharField(max_length=30, default='')
phone = models.CharField(max_length=10, null=True, blank=True, default='')
email = models.EmailField(validators=[validators.EmailValidator()],
unique=True, null=False, blank=False)
password = models.CharField(max_length=100, null=False, blank=False)
date_created = models.DateTimeField(auto_now_add=True)
@staticmethod
def get_customer_by_email(email):
try:
return Customer.objects.get(email=email)
except:
return False
def isExists(self):
if Customer.objects.filter(email=self.email):
return True
return False
class Meta:
verbose_name = 'Customer'
verbose_name_plural = 'Customers'
class Profile(models.Model):
orders = models.ForeignKey('Order', related_name='cutomer_orders',
on_delete=models.CASCADE)
first_name = models.CharField(max_length=50, null=False, blank=False)
last_name = models.CharField(max_length=50, null=True, blank=True)
phone = models.CharField(max_length=10, null=True, blank=True, default='')
email = models.EmailField(validators=[validators.EmailValidator()])
password = models.CharField(max_length=100, null=False, blank=False)
user = models.OneToOneField(Customer, related_name='owner', null=True, blank=True,
on_delete=models.CASCADE)
username = models.CharField(max_length=30, default='', validators=
[UnicodeUsernameValidator()])
date_created = models.DateTimeField(auto_now_add=True)
class Meta:
verbose_name = 'Profile'
verbose_name_plural = 'Profiles'
class Order(models.Model):
order_id = models.UUIDField("An Order id", default=uuid.uuid4, editable=False)
product = models.ForeignKey(Product, related_name='ordered_product', on_delete=models.CASCADE)
customer = models.ForeignKey(Customer, related_name='orderer', on_delete=models.CASCADE)
quantity = models.IntegerField(default=1)
price = models.DecimalField(max_digits=4, decimal_places=2, null=False, blank=False)
address = models.CharField(max_length=50, null=False, blank=False)
phone = models.CharField(max_length=12, default='', null=True, blank=True)
date_created = models.DateField(default=datetime.datetime.today)
status = models.BooleanField(default=False)
def placeOrder(self):
self.save()
@staticmethod
def get_orders_by_customer(customer_id):
return Order.objects.filter(customer=customer_id).order_by('-date')
class Meta:
verbose_name = 'Order'
verbose_name_plural = 'Orders'