ОБНОВЛЕНИЕ: проблема, кажется, настолько проста, что 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'),
),
]
Что вы, ребята, думаете?Я застрял на этом в течение нескольких часов, что очень расстраивает.