Usm*_*ill 1 python django django-models
from django.db import models
class Pet(models.Model):
SEX_CHOICES = [('M','Male'), ('F', 'Female')]
name = CharField(max_length=100)
submitter = CharField(max_length=100)
species = CharField(max_length=30)
breed = CharField(max_length=30, blank=True)
description = models.TextField()
sex = models.CharField(choices=SEX_CHOICES, max_length=1, blank=True)
submission_date = models.DateTimeField()
age = models.IntegerField(null=True)
vaccinations = models.ManyToManyField('Vaccine', blank=True)
class Vaccine(models.Model):
name = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)
使用此代码,我在运行“python manage.py makemigrations”时收到命令行错误。名称“CharField”未定义。
如何修复它。
您应该将CharField
类添加到模块导入中,即
from django.db import models
from django.db.models import CharField
Run Code Online (Sandbox Code Playgroud)
但是,这不是在项目中导入模块的正确方法。所以改变你的models.py
如下,
from django.db import models
class Pet(models.Model):
SEX_CHOICES = [('M','Male'), ('F', 'Female')]
name = models.CharField(max_length=100)
submitter = models.CharField(max_length=100)
species = models.CharField(max_length=30)
breed = models.CharField(max_length=30, blank=True)
description = models.TextField()
sex = models.CharField(choices=SEX_CHOICES, max_length=1, blank=True)
submission_date = models.DateTimeField()
age = models.IntegerField(null=True)
vaccinations = models.ManyToManyField('Vaccine', blank=True)
class Vaccine(models.Model):
name = models.CharField(max_length=50)
Run Code Online (Sandbox Code Playgroud)