Класс модели xxx не объявляет явную метку app_label и не находится в приложении в INSTALLED_APPS
Я пытаюсь интегрировать scrapy
с django
. Я новичок в django и не могу понять, что я сделал не так.
Я прочитал предыдущие вопросы, но ни один из ответов, похоже, не решил мою проблему.
Я продолжаю получать эту ошибку
raise RuntimeError( RuntimeError: Класс модели emails.models.Email не объявляет явную метку app_label и не находится в приложении в INSTALLED_APPS.
email_spider.py
from scrapyy.items import EmailItem
class firstSpider(scrapy.Spider):
name = "emails"
...
def parse(self, response):
...
item = EmailItem()
item['email'] = text_list2
...
process = CrawlerProcess()
process.crawl(firstSpider)
process.start()
item.py
import scrapy
from scrapy_djangoitem import DjangoItem
from emails.models import Email
class EmailItem(DjangoItem):
django_model = Email
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'scrapyy',
'emails',
]
emails/models.py
from django.db import models
# Create your models here.
class Email(models.Model):
email = models.CharField(max_length=100)
edit
Для решения проблемы я создал команду управления, как предложил @WillemVanOnsem
emails/management/commands/mycommand
import os
import sys
from django.core.management.base import BaseCommand
from scrapy import cmdline
class Command(BaseCommand):
def handle(self, *args, **options):
sys.path.insert(0, 'C:/Users/FacilOrdi/Desktop/scraping/scrapyy')
os.environ['SCRAPY_SETTINGS_MODULE'] = 'scrapyy.scrapyy.settings'
cmdline.execute("scrapy crawl emails".split())
В командной строке я запускаю :
python manage.py mycommand