Django:Model класс firts_app.models.Topic не объявляет явную метку app_label и не находится в приложении в INSTALLED_APPS

Я пытаюсь заполнить модели с помощью скрипта populate. Я установил модели и выполнил миграцию. Я перепробовал все решения, которые нашел в интернете, но они не сработали. Выдает: "RuntimeError: Класс модели first_app.models.Topic не объявляет явную метку app_label и не находится в приложении в INSTALLED_APPS."

manage.py

#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys


def main():
    """Run administrative tasks."""
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'first_project.settings')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)


if __name__ == '__main__':
    main()

populate_first_app.py

import os
from django.conf import settings
settings.configure()
os.environ.setdefault("DJANGO _SETTINGS_MODULE",'first_project.settings')
import django

django.setup()
import random
from first_app.models import AccessRecord, Webpage,Topic
from faker import Faker

fake_object=Faker();
topics=['Search,''Social','Marketplace','News','Games']
genders=['Male','Female']

def add_topic():
    t=Topic.objects.get_or_create(top_name=random.choice(topics))[0]
    t.save()  
    return t;


def populate(N=5):
    for entry in range(N):
        fake_topic=add_topic().top_name;
        fake_name=fake_object.company();
        fake_url=fake_object.url();
        webpage=Webpage.objects.get_or_create(topic=fake_topic,name=fake_name,url=fake_url)[0]
      

if __name__=='__main__':
    print('populating script');
    populate(20);
    print('populated')












models.py

from django.db import models

class Topic(models.Model): 
    top_name =models.CharField(max_length=264,unique=True);
    def __str__(self) :
        return self.top_name;


class Webpage(models.Model):
    topic=models.ForeignKey(Topic,on_delete=models.CASCADE)
    name=models.CharField(max_length=264,unique=True)
    url=models.URLField(unique=True)

    def __str__(self) :
        return self.name;

class AccessRecord (models.Model):
    name=models.ForeignKey(Webpage,on_delete=models.CASCADE);
    date=models.DateField()
    def __str__(self) :
       
     return str(self.date)

# Create your models here.

INSTALLED_APPS


INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'first_app'
]

apps.py

from django.apps import AppConfig

class FirstAppConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'first_app'


Вернуться на верх