添加新模型类时的关系错误

时间:2014-03-20 06:17:48

标签: django django-models django-south

我在models.py文件中有2个模型类:

class Certificate(models.Model):
    comments = models.TextField(blank=True, default='')
    generic_certificate = models.ForeignKey(GenericCertificate, related_name='certificates_awarded')
    tag = models.ForeignKey('Tag', related_name='certificates_awarded', null=True, blank=True)


class GenericCertificate(CommonInfo):
    CERTIFICATE_TYPE = (('C', 'system created'),
                        ('U', 'user created'))

    certificate_icon = models.ImageField(upload_to='certificate/icons', default='defaults/certificate.png')
    certificate_type = models.CharField(choices=CERTIFICATE_TYPE, max_length=1, default='C')
    template = models.FileField(upload_to='certificate/generic_templates')

他们在django admin中运行良好,但是当我再添加一个模型类时,它开始在命中Generic certificates选项时出错:包含的操作:South Migration和syncdb 异常类型:ProgrammingError 例外价值:
关系" certificates_genericcertificate"不存在 第1行:SELECT COUNT(*)FROM" certificates_genericcertificate"

在同一个models.py

中新添加的模型类
class PositionCertificate(models.Model):
    rewardee = models.CharField(max_length=50, default = '0,0')
    org_logo = models.CharField(max_length=50, default = '0,0')
    tag_name = models.CharField(max_length=50, default = '0,0') 

如何删除此错误?为什么会出现这个错误?

1 个答案:

答案 0 :(得分:1)

错误
relation "certificates_genericcertificate" does not exist 意味着" certificates_genericcertificate"您的数据库中不存在关系 请做

python manage.py syncdb

如果您使用South,则可以使用

python manage.py migrate

尝试点击这些命令,如果它没有帮助,请删除表/数据库并使用syncdb重新创建表/数据库。