如何修复模型尚未加载

时间:2015-09-07 09:45:26

标签: python django django-models

在django 1.8

models.py

class hotel(models.Model):
    hotel_name = models.CharField(max_length=20)

class Sell(models.Model):
    hotel = models.ForeignKey("hotel")
    sell_text = models.CharField(vmax_length=20)

class Selled(models.Model):
    buy_choices = [(data.id, data.sell_text) for data in Sell.objects.filter(Hotel_id=2)]
    city = models.IntegerField(choices=city_choices, default=1)

命令./manage.py runserver

   django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.

为什么我无法使用Hotel_id过滤器

取出Hotel_id将运行

2 个答案:

答案 0 :(得分:2)

您正在尝试在django设法建立数据库之前进行数据库查询,因此django会告诉您“模型尚未加载”。

看起来您希望使用查询为模型字段提供动态选择,这样您就无法加载时间。更重要的是,您似乎需要ForeignKey,而不是IntegerField

你应该看看limit_choices_to

class Selled(models.Model):
    city = models.ForeignKey('Sell', limit_choices_to={'id': 2})

答案 1 :(得分:-1)

在开发服务器中运行应用程序之前,必须将项目连接到现有数据库(或使用SQLite创建一个onfly)。

使用DB设置正确后,您必须运行以下命令。

python manage.py migrate

这将在您的数据库中创建必要的表以开始工作。您可以在此处查看与DB相关的所有必要信息。 https://docs.djangoproject.com/en/1.8/ref/databases/