python - 模型尚未安装或者是抽象的

标签 python django-models foreign-keys

当我尝试迁移我的代码时出现此错误。 这是我的代码和类:

from django.db import models
from core.models import Event

class TicketType(models.Model):
    name = models.CharField(max_length=45)
    price = models.DecimalField(max_length=2, decimal_places=2, max_digits=2)
    type = models.CharField(max_length=45)
    amount = models.IntegerField()
    event = models.ForeignKey(Event)

class Meta:
    app_label = "core"


import datetime
from django.core.serializers import json
from django.db import models
from core.models import User


class Event(models.Model):
    page_attribute = models.TextField()
    name = models.TextField(max_length=128 , default="New Event")
    description = models.TextField(default="")
    type = models.TextField(max_length=16)
    age_limit = models.IntegerField(default=0)
    end_date = models.DateTimeField(default=datetime.datetime.now())
    start_date = models.DateTimeField(default=datetime.datetime.now())
    is_active = models.BooleanField(default=False)
    user = models.ForeignKey(User)
    ticket_type=models.ForeignKey('core.models.ticket_type.TicketType')

    class Meta:
            app_label = "core"

这是我得到的错误:

CommandError: One or more models did not validate: core.event: 'ticket_type' has a relation with model core.models.ticket_type.TicketType, which has either not been installed or is abstract.

最佳答案

在同一个应用程序中将它们放在不同的文件中,您会不必要地混淆自己。

但您的问题是由您引用目标模型的方式引起的。您不使用模型的完整模块路径:您只需使用 'app_name.ModelName'。所以在你的情况下应该是:

ticket_type=models.ForeignKey('core.TicketType')

关于python - 模型尚未安装或者是抽象的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21044885/

相关文章:

python - 具有逻辑索引的散点图

python - 在函数: Python中使用特殊字符

python 导入错误: cannot import name 'Faker' from 'faker'

sql - 如何在oracle中创建表作为选择(CTAS)?

mysql - CakePHP 是在代码级别处理 FK,还是我也应该将 FK 添加到我的数据库中?

python - Django Admin - 更改标题 'Django administration' 文本

python - "no such file or directory python"激活Python环境

python - Django 重启服务器或 httpd

python - 有没有办法指定接受 __init__ 值的抽象函数

postgresql - 外键 : on delete set null but only for one field of relation