当我尝试迁移我的代码时出现此错误。 这是我的代码和类:
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/