为啥我在我的 Django 项目中不断收到此“名称‘模型’未定义”错误?

Posted

技术标签:

【中文标题】为啥我在我的 Django 项目中不断收到此“名称‘模型’未定义”错误?【英文标题】:Why do I keep getting this "name 'Model' is not defined" error in my Django project?为什么我在我的 Django 项目中不断收到此“名称‘模型’未定义”错误? 【发布时间】:2016-05-06 09:41:41 【问题描述】:

我已经查看了该主题下的 *** 问题,并将我的 Trainer 课程移到了 Class_Training 课程的上方,但是当我输入“管理.py 在我的命令提示符下创建超级用户。

另外,我在迁移模型时遇到了困难。我尝试了“django-admin makemigrations training”,但 django-admin 没有被识别;和“manage.py makemigrations training”,但 makemigrations 未被识别。

如何迁移我的模型?

这是我的代码:

    #from django.db import models
 from django_pg import models

# Create your models here.
TRAINING_TYPE_CHOICES = (
    ('AC', 'Armed Combat'),
    ('UC', 'Unarmed Combat'),
    ('P', 'Piloting'),
    ('O', 'Other'),
)

GENDER_CHOICES = (
    ('F', 'Female'),
    ('M', 'Male'),
    ('U', 'Unspecified'),
    )
OUTCOME_CHOICES = (
    ('P', 'Pass'),
    ('F', 'Fail'),
    )

class Trainer(models, Model):
    first_name = models.CharField(max_length = 25)
    surname = models.CharField(max_length = 30)
    address = models.CharField(max_length = 200)
    gender = models.CharField(max_length = 1, choices = GENDER_CHOICES)
    citizenship = models.CharField(max_length = 30)
    email = models.EmailField(max_length = 30)

class Class_Training(models, Model):
    trainer = models.ForeignKey('Trainer')
    class_name = models.CharField(max_length = 30)
    type_of_class = models.CharField(max_length = 2, choices= TRAINING_TYPE_CHOICES)
    description = models.TextField(max_length = 200)

    def __str__(self):
            return self.class_name, self.trainer


class ReportLog(models.CompositeField):
    class_ID = models.IntegerField
    hero_ID = models.IntegerField
    outcome = models.CharField(max_length = 1, choices = OUTCOME_CHOICES)
    comments = models.TextField
    trainer = models.IntegerField

    class Meta:
        db_type = 'report'

class Attendance(models.CompositeField):
    class_ID = models.IntegerField
    hero_ID = models.IntegerField
    room_name = models.CharField(max_length = 30)
    date = models.DateField
    start_time = models.TimeField
    end_time = models.TimeField

    class Meta:
        db_type = 'attendance'

class Room(models, Model):
    room_name = models.CharField(max_length = 20)

class Hero(models, Model):
    codename = models.CharField(max_length = 20)

    def __str__(self):
        return self.codename

【问题讨论】:

【参考方案1】:

解决Model 的问题

您在某些模型定义中使用了models, Model 而不是models.ModelModel 类在 model 模块中。这就是我们使用. 而不是逗号的原因。

房间模型:

class Room(models.Model):

英雄模型:

class Hero(models.Model):

培训师模型:

class Trainer(models.Model):

最后:

class Class_Training(models.Model):

解决迁移问题

应该是:

python manage.py makemigrations

你需要python 命令。还要检查您是否在您的manage.py 所在的目录中。

【讨论】:

我正在使用 Windows 命令提示符,但它无法识别术语“python”。 您需要在系统路径中添加python 我该怎么做?我的 C 盘中有 Python34 (3.4),如:C:/Python34. 抱歉,我有一段时间没有使用 Windows 进行开发了。您可以在 Google 中搜索。 好的,我已经添加了 python 命令,它现在可以识别它,但是 'makemigrations' 仍然不能识别为命令。

以上是关于为啥我在我的 Django 项目中不断收到此“名称‘模型’未定义”错误?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在 django 教程中收到此模板错误?

在我的 css 中不断遇到资产预编译错误...不知道为啥

为啥我在 Django 中使用此调用从 Paypal 收到“内部错误”?

为啥我在 Django 中收到“MySQL 服务器已消失”异常?

为啥我在 facenet 中收到此错误?

为啥我在尝试创建此表时不断收到外键错误? [复制]