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

我已经查看了该主题下的 stackoverflow 问题,并将我的 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

【问题讨论】:

    标签: python django model nameerror


    【解决方案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' 仍然不能识别为命令。
    猜你喜欢
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多