2015-07-14 13 views
5

Miałem nadzieję uzyskać pomoc dotyczącą tego problemu, który mam. Nadal uczę się Django (i Pythona) i napotykam ten konkretny problem, na który nie mogę znaleźć odpowiedzi. Stworzyłem nową aplikację o nazwie "Wiadomości" i skonfigurowałem model aplikacji. Używając interfejsu administratora utworzyłem trochę danych. Z mojej aplikacji "Strony" próbuję zaimportować klasę News_Article i uzyskać błąd Brak modułu o nazwie News.models.Django: Nie można zaimportować modelu z innej aplikacji

Walczę, aby zobaczyć, co się tutaj dzieje.

Każda pomoc będzie mile widziana.

DIR Struktura

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 

aktualności \ model.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 

Pages \ views.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) 

błąd

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:\Me\Websites\Bolton_GC\Bolton_GC\Pages\views.py in <module>, line 4 
Python Executable: c:\python27\python.exe 
Python Version:  2.7.9 
Python Path:  

['C:\\Me\\Websites\\Bolton_GC', 
'c:\\python27\\lib\\site-packages\\setuptools-18.0.1-py2.7.egg', 
'C:\\WINDOWS\\SYSTEM32\\python27.zip', 
'c:\\python27\\DLLs', 
'c:\\python27\\lib', 
'c:\\python27\\lib\\plat-win', 
'c:\\python27\\lib\\lib-tk', 
'c:\\python27', 
'c:\\python27\\lib\\site-packages'] 

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

Co ciekawe, działa w pliku urls.py, więc musi to być problem ze strukturą folderów, ale jestem zakłopotany. – Smurf

+0

spróbuj użyć 'Bolton_GC.News.models import News_Article '- Chcę sprawdzić, czy to jest struktura – TheLifeOfSteve

+0

Próbowałem, że również kumpel, ten sam problem – Smurf

Odpowiedz

16

Przełącznik

from News.models import News_Article 

do

from Bolton_GC.News.models import News_Article 
+4

Jeśli używasz PyCharm, upewnij się, że dostosowałeś katalog główny swojego projektu z Preferencje -> Struktura projektu – Mike

3

Wystarczy rozwinąć @ odpowiedź TheLifeOfSteve za wszystkie instrukcje importu są zawsze w stosunku do pliku manage.py.

Jeśli plik manage.py był na ścieżce Bolton_GC/Bolton_GC, to słuszne jest stwierdzenie import będzie tylko:

from News.models import News_Article 

Ale w obecnej strukturze katalogów, po to poprawna odpowiedź jak wskazano Steve.

Powiązane problemy