Python 名称错误:名称';简介';没有定义

Python 名称错误:名称';简介';没有定义,python,django,Python,Django,这是我的models.py代码。我正在尝试运行python3.8 manage.py migrate命令来创建数据库的表,但是我一直收到这个错误,这里可能有什么问题。Profile是models.py代码中的一个类。如果您需要我的代码的另一部分,请询问 from django.db import models from django.contrib.auth.models import User from django.utils import timezone class Image(mod

这是我的models.py代码。我正在尝试运行python3.8 manage.py migrate命令来创建数据库的表,但是我一直收到这个错误,这里可能有什么问题。Profile是models.py代码中的一个类。如果您需要我的代码的另一部分,请询问

from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone

class Image(models.Model):
    user  = models.ForeignKey(User, on_delete=models.CASCADE, null='True', blank=True)
    image = models.ImageField(upload_to = 'pics/')
    name = models.CharField(max_length=50,blank=True)      
    caption = models.CharField(max_length=250, blank=True)  
    likes =  models.ManyToManyField(User, related_name='likes', blank=True, )
    date_posted = models.DateTimeField(default=timezone.now)


class Comment(models.Model):
    comment = models.TextField()
    image = models.ForeignKey('Image', on_delete=models.CASCADE,related_name='comments',null='True', blank=True )
    name = models.CharField(max_length=100, blank=True)
    user = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name='comments',null='True', blank=True )
    created = models.DateTimeField(auto_now_add=True, null=True)  

class Profile(models.Model):
    name = models.OneToOneField(User, on_delete=models.CASCADE)
    profile_picture = models.ImageField(upload_to='images/', default='default.png')
    bio = models.TextField(max_length=500, default="My Bio", blank=True)
    followers = models.ManyToManyField(User, related_name="followers", blank=True)
    following = models.ManyToManyField(User, related_name="following", blank=True)  
在构造之前,您正在引用
概要文件
类。您可以改为使用字符串文字:

class Comment(models.Model):
    # …
    user = models.ForeignKey(
        'Profile',  # ← a string literal
        on_delete=models.CASCADE,
        related_name='comments',
        null='True',
        blank=True
    )
    # …

注意:通常最好使用来引用用户模型,而不是直接使用。有关更多信息,请参见


在定义概要文件类之前,您正在使用它。切换Comment类和Profile类的顺序。像这样:

class Profile(models.Model):
    name = models.OneToOneField(User, on_delete=models.CASCADE)
    profile_picture = models.ImageField(upload_to='images/', default='default.png')
    bio = models.TextField(max_length=500, default="My Bio", blank=True)
    followers = models.ManyToManyField(User, related_name="followers", blank=True)
    following = models.ManyToManyField(User, related_name="following", blank=True)  
    
    
class Comment(models.Model):
    comment = models.TextField()
    image = models.ForeignKey('Image', on_delete=models.CASCADE,related_name='comments',null='True', blank=True )
    name = models.CharField(max_length=100, blank=True)
    user = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name='comments',null='True', blank=True )
    created = models.DateTimeField(auto_now_add=True, null=True)  

class Profile(models.Model):
    name = models.OneToOneField(User, on_delete=models.CASCADE)
    profile_picture = models.ImageField(upload_to='images/', default='default.png')
    bio = models.TextField(max_length=500, default="My Bio", blank=True)
    followers = models.ManyToManyField(User, related_name="followers", blank=True)
    following = models.ManyToManyField(User, related_name="following", blank=True)  
    
    
class Comment(models.Model):
    comment = models.TextField()
    image = models.ForeignKey('Image', on_delete=models.CASCADE,related_name='comments',null='True', blank=True )
    name = models.CharField(max_length=100, blank=True)
    user = models.ForeignKey(Profile, on_delete=models.CASCADE, related_name='comments',null='True', blank=True )
    created = models.DateTimeField(auto_now_add=True, null=True)