Raise AppRegistryNotReady("Модели еще не загружены.") django.core.exceptions.AppRegistryNotReady: Модели еще не загружены

Это django rest_framework api Я создал этот api для ресторана. Это menu api. Я хочу сохранить данные menu.json в мою базу данных, но у меня не получается. Можете ли вы дать какой-нибудь совет по сохранению данных json в мои модели. Я получил эту ошибку:

  File "C:\Users\OSMAN MERT\AppData\Local\Programs\Python\Python310\lib\site-packages\django\utils\functional.py", line 49, in __get__     
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\OSMAN MERT\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\models\fields\related.py", line 113, in related_model
    apps.check_models_ready()
  File "C:\Users\OSMAN MERT\AppData\Local\Programs\Python\Python310\lib\site-packages\django\apps\registry.py", line 143, in check_models_ready
    raise AppRegistryNotReady("Models aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.

models.py

class Meal(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=100)
    is_vegetarian = models.BooleanField(default=False)
    is_vegan = models.BooleanField(default=False)

    def __str__(self):
        return self.name

class Ingredient(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=100)
    #groups = models.CharField(max_length=100)
    #meal = models.ForeignKey(Meal, on_delete=models.CASCADE, related_name='ingredients')

    def __str__(self):
        return self.name

class Option(models.Model):
    id = models.AutoField(primary_key=True)
    ingredient = models.ForeignKey(Ingredient, on_delete=models.CASCADE)
    name = models.CharField(max_length=100)
    quality = models.CharField(max_length=100)
    price = models.FloatField()
    per_amount = models.CharField(max_length=100)

    def __str__(self):
        return self.name

class MealIngredient(models.Model):
    id = models.AutoField(primary_key=True)
    meal = models.ForeignKey(Meal, on_delete=models.CASCADE)
    ingredient = models.ForeignKey(Ingredient, on_delete=models.CASCADE)



path = r"C:\Users\OSMAN MERT\Desktop\menu\menu_core\menu.json"

with open(path) as f:
  data = json.loads(f.read())

for meal in data["meals"]:
    id = meal["id"]
    name = meal["name"]
    meal_obj, created = Meal.objects.get_or_create(name=name)
    for ingredient in meal["ingredients"]:
        name_in = ingredient["name"]
        ingredient_obj, created = Ingredient.objects.get_or_create(name=name_in)
        MealIngredient.objects.get_or_create(meal=meal_obj, ingredient=ingredient_obj)

for ingre in data["ingredients"]:
  ingre_name = ingre["name"]
  ingre_obj, created = Ingredient.objects.get_or_create(name=ingre_name)

  for opti in ingre["options"]:
    opt_name = opti["name"]
    opt_quality = opti["quality"]
    opt_price = opti["price"]
    opt_amount = opti["per_amount"]
    Option.objects.get_or_create(ingredient=ingre_obj, name=opt_name, quality=opt_quality,
                                  price=opt_price, per_amount=opt_amount)


Это некоторые данные из menu.json, не весь код включен туда. menu.json

{
    "meals": [
      {
        "id": 1,
        "name": "Rice and chicken bowl",
        "ingredients": [
          { "name": "Rice", "quantity": 120, "quantity_type": "gram" },
          { "name": "Chicken", "quantity": 85, "quantity_type": "gram" }
        ]
      },
      {
        "id": 2,
        "name": "Pasta with marinara sauce and vegetables",
        "ingredients": [
          { "name": "Pasta", "quantity": 115, "quantity_type": "gram" },
          {
            "name": "Marinara sauce",
            "quantity": 120,
            "quantity_type": "millilitre"
          },
          { "name": "Vegetables", "quantity": 240, "quantity_type": "gram" }
        ]
      },
      {
        "id": 3,
        "name": "Grilled chicken with roasted vegetables",
        "ingredients": [
          { "name": "Chicken", "quantity": 85, "quantity_type": "gram" },
          { "name": "Vegetables", "quantity": 240, "quantity_type": "gram" }
        ]
      }
    ],
  
    "ingredients": [
      {
        "name": "Rice",
        "groups": ["vegan", "vegetarian"],
        "options": [
          {
            "name": "Long grain white rice",
            "quality": "high",
            "price": 3,
            "per_amount": "kilogram"
          },
          {
            "name": "Medium grain brown rice",
            "quality": "medium",
            "price": 2,
            "per_amount": "kilogram"
          },
          {
            "name": "Quick cooking white rice",
            "quality": "low",
            "price": 1.5,
            "per_amount": "kilogram"
          }
        ]
      }]
Вернуться на верх