Ошибка Django: apps.get_models () возвращается пустой, не может делать запросы или делать что-либо с моделями - PullRequest
0 голосов
/ 12 октября 2018

ОБНОВЛЕНИЕ: проблема, кажется, настолько проста, что Django не может найти мое приложение, как попытка запустить app.get_app_config ('mainpage'):

Нет установленного приложения с меткой 'mainpage '.

ОБНОВЛЕНИЕ 2: Я провел некоторое расследование, и apps.get_models () возвращается совершенно пустым!Это еще один признак той же проблемы и заставляет задуматься, почему Джанго вообще ничего не находит.

Однако остальная часть проблемы остается той же.Я не вижу причин, по которым приложение не должно быть распознано.

Я столкнулся с вышеуказанной ошибкой в ​​Django. Прежде чем вы кричите на меня, я внимательно прочитал этот пост на ту же ошибку. .Однако ни одно из представленных там решений не помогло решить эту проблему.

По сути, я пытаюсь создать экземпляр каждой из моих моделей, чтобы я мог заполнить свою веб-страницу.Однако я даже не могу запустить свой models.py без вышеуказанной ошибки, которая выглядит следующим образом:

from django.db import models


class HomePage(models.Model):
    name = models.CharField(max_length=200)

    def __str__(self):
        return self.name

class Section(models.Model):
    name = models.CharField(max_length=200)
    home_page = models.ForeignKey('mainpage.HomePage', on_delete=models.CASCADE)

    def __str__(self):
        return self.name

class NavBar(Section):
    logo = models.ImageField()

class Entry(models.Model):
    primary = models.BooleanField()
    text = models.CharField(max_length=15)

class Landing(Section):
    tagline = models.TextField()
    button_text = models.CharField(max_length=25)

class About(Section):
    title = models.CharField(max_length=200)

class Blurb(models.Model):
    "Blurb for an about section"
    title = models.CharField(max_length=200)
    body = models.TextField()
    section = models.ForeignKey('mainpage.About', on_delete=models.CASCADE)

class Capabilities(Section):
    title = models.CharField(max_length=200)
    description = models.TextField()
    button_text = models.CharField(max_length=40)

class Capability(models.Model):
    """Capability entry"""
    image = models.ImageField()
    description = models.TextField()
    section = models.ForeignKey('mainpage.Capabilities', on_delete=models.CASCADE)


class Testimonials(Section):
    title = models.CharField(max_length=200)

class Testimonial(models.Model):
    """Testimonial card"""
    name = models.CharField(max_length=200)
    role = models.CharField(max_length=200)
    description = models.TextField()

class Contact(Section):
    logo = models.ImageField()
    description = models.TextField()
    address = models.ForeignKey('mainpage.Address', on_delete=models.CASCADE)
    info = models.ForeignKey('mainpage.ContactInfo', on_delete=models.CASCADE)

class Address(models.Model):
    title = models.CharField(max_length=100)
    street_address = models.CharField(max_length=200)
    city = models.CharField(max_length=200)
    state = models.CharField(max_length=2)
    zip_code = models.IntegerField()

class ContactInfo(models.Model):
    title = models.CharField(max_length=100)
    phone = models.IntegerField()
    email = models.EmailField

class IconLink(models.Model):
    icon = models.CharField(max_length=50)
    link = models.TextField()
    contact_section = models.ForeignKey('mainpage.Contact', on_delete=models.CASCADE)

Мои установленные приложения выглядят нормально:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'mainpage', # needs to be under contentypes (foreign key)
    'blog',
]

Как и мое приложениеконфигурация:

from django.apps import AppConfig


class MainpageConfig(AppConfig):
    name = 'mainpage'
    verbose_name = 'Main Page'

Так что я действительно в растерянности.Это все очень печально, я получаю ту же ошибку при попытке импортировать модели в другой файл:

import os, sys
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'gainsite.settings')
import django
from django.conf import settings
try:
    settings.configure()
except Exception as e:
    print(e)
django.setup()
from mainpage.models import Blurb

print(Blurb().__dict__)

Я вполне уверен, что Django не разрешает пути к моим моделям должным образом, но я новичок ина самом деле не знаю достаточно, чтобы расследовать дальше.Я проверил миграцию для добавления этих моделей, и это кажется непростой дорогой:

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Address',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=100)),
                ('street_address', models.CharField(max_length=200)),
                ('city', models.CharField(max_length=200)),
                ('state', models.CharField(max_length=2)),
                ('zip_code', models.IntegerField()),
            ],
        ),
        migrations.CreateModel(
            name='Blurb',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=200)),
                ('body', models.TextField()),
            ],
        ),
        migrations.CreateModel(
            name='Capability',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('image', models.ImageField(upload_to='')),
                ('description', models.TextField()),
            ],
        ),
        migrations.CreateModel(
            name='ContactInfo',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=100)),
                ('phone', models.IntegerField()),
            ],
        ),
        migrations.CreateModel(
            name='Entry',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('primary', models.BooleanField()),
                ('text', models.CharField(max_length=15)),
            ],
        ),
        migrations.CreateModel(
            name='HomePage',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200)),
            ],
        ),
        migrations.CreateModel(
            name='IconLink',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('icon', models.CharField(max_length=50)),
                ('link', models.TextField()),
            ],
        ),
        migrations.CreateModel(
            name='Section',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200)),
            ],
        ),
        migrations.CreateModel(
            name='Testimonial',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200)),
                ('role', models.CharField(max_length=200)),
                ('description', models.TextField()),
            ],
        ),
        migrations.CreateModel(
            name='About',
            fields=[
                ('section_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='mainpage.Section')),
                ('title', models.CharField(max_length=200)),
            ],
            bases=('mainpage.section',),
        ),
        migrations.CreateModel(
            name='Capabilities',
            fields=[
                ('section_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='mainpage.Section')),
                ('title', models.CharField(max_length=200)),
                ('description', models.TextField()),
                ('button_text', models.CharField(max_length=40)),
            ],
            bases=('mainpage.section',),
        ),
        migrations.CreateModel(
            name='Contact',
            fields=[
                ('section_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='mainpage.Section')),
                ('logo', models.ImageField(upload_to='')),
                ('description', models.TextField()),
                ('address', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mainpage.Address')),
                ('info', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mainpage.ContactInfo')),
            ],
            bases=('mainpage.section',),
        ),
        migrations.CreateModel(
            name='Landing',
            fields=[
                ('section_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='mainpage.Section')),
                ('tagline', models.TextField()),
                ('button_text', models.CharField(max_length=25)),
            ],
            bases=('mainpage.section',),
        ),
        migrations.CreateModel(
            name='NavBar',
            fields=[
                ('section_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='mainpage.Section')),
                ('logo', models.ImageField(upload_to='')),
            ],
            bases=('mainpage.section',),
        ),
        migrations.CreateModel(
            name='Testimonials',
            fields=[
                ('section_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='mainpage.Section')),
                ('title', models.CharField(max_length=200)),
            ],
            bases=('mainpage.section',),
        ),
        migrations.AddField(
            model_name='section',
            name='home_page',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mainpage.HomePage'),
        ),
        migrations.AddField(
            model_name='iconlink',
            name='contact_section',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mainpage.Contact'),
        ),
        migrations.AddField(
            model_name='capability',
            name='section',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mainpage.Capabilities'),
        ),
        migrations.AddField(
            model_name='blurb',
            name='section',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='mainpage.About'),
        ),
    ]

Что вы, ребята, думаете?Я застрял на этом в течение нескольких часов, что очень расстраивает.

...