Django: невозможно импортировать модель из другого приложения

Я надеялся обратиться за помощью по этой проблеме, которая у меня есть. Я все еще изучаю Django (и Python) и сталкиваюсь с этой конкретной проблемой, на которую я не могу найти ответ. Я создал новое приложение под названием "новости" и настроил модель для приложения. Используя интерфейс администратора я создал некоторые данные. Из моего приложения "страницы" я пытаюсь импортировать News_Article класс и получение ошибки нет модуля с именем News.models.

Я изо всех сил пытаюсь понять, что происходит не так здесь.

любая помощь была бы весьма признательна.

реж структуры

Bolton_GC [Folder]
- Bolton_GC [Folder]
  - News [Folder]
    - Migrations [Folder]
    - __init__.py
    - __init__.pyc
    - admin.py
    - admin.pyc
    - models.py
    - models.pyc
    - tests.py
    - views.py
  - Pages [Folder]
    - Migrations [Folder]
    - __init__.py
    - __init__.pyc
    - admin.py
    - admin.pyc
    - models.py
    - models.pyc
    - tests.py
    - views.py
    - views.pyc
  - static [Folder]
  - templates [Folder]
  - __init__.py
  - __init__.pyc
  - settings.py
  - settings.pyc
  - urls.py
  - urls.pyc
  - wsgi.py
  - wsgi.pyc
- db.sqlite3
- manage.py

newsmodel.py

from django.db import models
from datetime import datetime

class News_Article(models.Model):
    class Meta:
        ordering = ['news_datetime_submitted']
    news_title = models.CharField(max_length=75, verbose_name="News Title")
    news_text = models.CharField(max_length=300, verbose_name="News Text")
    news_active = models.BooleanField(default=True, verbose_name="News Active")
    news_datetime_submitted = models.DateTimeField(default=datetime.now(), verbose_name="News Date")

    def __str__(self):
        return self.news_title

Pagesviews.py

from django.shortcuts import HttpResponse, get_object_or_404, render
from models import Page, Announcement, Menu, Sub_Menu
from django.core.exceptions import ObjectDoesNotExist
from News.models import News_Article
import pdb

# Helper Functions

def get_announcement():
    try:
        return Announcement.objects.get(announcement_active=True)
    except ObjectDoesNotExist:
        return None

def clean_url(dirtyurl, badlist):
    for item in badlist:
        dirtyurl = dirtyurl.replace(item,'')
    return dirtyurl[1:-1]

# View functions

def page(request):
    rDict = {}
    path = clean_url(request.path, ['"', "'"])
#    pdb.set_trace()
    p = get_object_or_404(Page, urlconf_text=path)
    rDict['p'] = p
    announcement = get_announcement()
    if not announcement == None:
        rDict['announcement'] = announcement
    rDict['sitenav'] = path
    rDict['menu'] = Menu.objects.all().order_by('menu_position')
    return render(request, 'en/public/page.html', rDict)

ImportError at /home/

No module named News.models

Request Method:     GET
Request URL:    http://127.0.0.1:8000/home/
Django Version:     1.8.2
Exception Type:     ImportError
Exception Value:    

No module named News.models

Exception Location:     C:MeWebsitesBolton_GCBolton_GCPagesviews.py in <module>, line 4
Python Executable:  c:python27python.exe
Python Version:     2.7.9
Python Path:    

['C:MeWebsitesBolton_GC',
 'c:python27libsite-packagessetuptools-18.0.1-py2.7.egg',
 'C:WINDOWSSYSTEM32python27.zip',
 'c:python27DLLs',
 'c:python27lib',
 'c:python27libplat-win',
 'c:python27liblib-tk',
 'c:python27',
 'c:python27libsite-packages']

Server time:    Tue, 14 Jul 2015 13:21:14 +0100

2 ответов


переключатель

from News.models import News_Article

to

from Bolton_GC.News.models import News_Article

чтобы уточнить ответ @TheLifeOfSteve, все операторы импорта всегда относятся к вашему manage.py файл.

Если manage.py файл был на пути Bolton_GC / Bolton_GC, тогда правильный оператор импорта будет просто:

from News.models import News_Article

но в текущей структуре каталогов следующий правильный ответ, как указал Стив.

from Bolton_GC.News.models import News_Article