Ошибка утверждения: первым параметром ForeignKey должна быть либо модель, либо имя модели, либо строка ‘self’

#python #django

#python #django

Вопрос:

Я только что создал такую модель :

 from django.db import models

# Create your models here.


class Category:
    title = models.CharField(max_length=50)
    slug = models.CharField(max_length=200)
    cat_image = models.ImageField(upload_to='images/')

    def __str__(self):
        return self.title

class Brand:
    title = models.CharField(max_length=50)
    slug = models.CharField(max_length=200)
    brand_image = models.ImageField(upload_to='images/')

    def __str__(self):
        return self.title

class UOM:
    title = models.CharField(max_length=100)

    def __str__(self):
        return self.title
    
class Product_Images:
    multi_images = models.ImageField(upload_to='images/')



class Product:
    name = models.CharField(max_length=100)
    slug = models.CharField(max_length=200)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    brand = models.ForeignKey(Brand, on_delete=models.CASCADE)
    price = models.IntegerField(null=True, blank=True)
    height = models.IntegerField(null=True, blank=True)
    weight = models.IntegerField(null=True, blank=True)
    length = models.IntegerField(null=True, blank=True)
    color = models.IntegerField(null=True, blank=True)
    stock = models.BooleanField()
    SKU = models.CharField(max_length=150)


    def __str__(self):
        return self.name


class Customer:
    phone_number = models.CharField(max_length=11)
    first_name = models.CharField(max_length=10)
    last_name = models.CharField(max_length=10)
    email = models.CharField(max_length=20)
    password = models.CharField(max_length=10)


    def __str__(self):
        return self.first_name



class Order:
    customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
    invoice = models.CharField(max_length=16, null=True, blank=True)
    phone = models.CharField(max_length=12)
    address = models.CharField(max_length=150)
    
 

Но, столкнувшись с этой ошибкой, я понятия не имею, почему я получаю такую ошибку. Я не могу даже совершать миграции, если удаляю некоторые поля. В нем говорится, что никаких изменений не обнаружено, но я изменил некоторые поля, все еще получая такого рода ошибки, может ли кто-нибудь решить эту проблему для меня. и, пожалуйста, объясните, почему при возникновении такой ошибки я не могу найти здесь никаких проблем. Я также сталкиваюсь с этой проблемой без изменений на моем macos. я меняю некоторые поля, но все равно говорится, что изменений не обнаружено.

Комментарии:

1. Разве все модели не должны наследовать от django.db.models?

Ответ №1:

Модели в django должны быть похожи:

 class ModelClass(models.Model):