Python django:无法在与模型相同的路径上将模型导入到.py

Python django:无法在与模型相同的路径上将模型导入到.py,python,django,models,importerror,Python,Django,Models,Importerror,我已经阅读了SO和所有django文档中的所有内容,寻找解决方案。我的模型工作得非常好,但我不能将它们导入到与models.py位于同一目录下的“getnews.py”文件中,我可以导入到views.py,并且绝对没有循环导入 models.py: from django.db import models import datetime from django.utils import timezone class newsurls(models.Model): title = mo

我已经阅读了SO和所有django文档中的所有内容,寻找解决方案。我的模型工作得非常好,但我不能将它们导入到与models.py位于同一目录下的“getnews.py”文件中,我可以导入到views.py,并且绝对没有循环导入

models.py:

from django.db import models

import datetime
from django.utils import timezone

class newsurls(models.Model):
    title = models.CharField(max_length=200)
    def __unicode__(self):
        return unicode(self.title)
    pub_date = models.DateTimeField("date published")



class newsblock(models.Model):
    news = models.ForeignKey(newsurls)
    url = models.URLField(max_length=2000)
    def __unicode__(self):
        return unicode(self.url)
    image = models.URLField(max_length=2000)
    favi = models.URLField(max_length=2000)
    bgcolor = models.CharField(max_length=20)
    tcolor = models.CharField(max_length=20)
    genre = models.CharField(max_length=200)
in views.py:(works)

getnews.py:(不工作)

回溯:

Traceback (most recent call last):
File "/home/skru/newsshuffle/news/getnews.py", line 3, in <module>
from news.models import newsurls, newsblock
ImportError: No module named news.models
文件路径:

 ├── db.sqlite3
 ├── manage.py
 ├── news
 │   ├── static
 │   │   └── news
 │   │       ├── news.css
 │   │       └── ...
 │   ├── templates
 │   │   └── news
 │   │       ├── allnews.html
 │   │       └── ...
 │   ├── __init__.py
 │   ├── admin.py
 │   ├── dd.py
 │   ├── getPrevDate.py
 │   ├── getnews.py
 │   ├── models.py
 │   ├── storyDb.p
 │   ├── tests.py
 │   ├── urls.py
 │   ├── views.py
 └── newsshuffle
     ├── __init__.py
     ├── settings.py
     ├── urls.py
     └── wsgi.py
我尝试过各种不同的进口“新闻洗牌、新闻、模型”等等。。, 按照其他提要中的建议,手动将系统路径添加到系统路径。请帮助

manage.py:

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "newsshuffle.settings")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

添加此项是因为SO上的大多数其他帖子都指向设置DJANGO_SETTINGS_模块,必须手动设置,但正如您所看到的,由于目录结构,您的导入应该可以正常工作

试试相对导入怎么样?在
views.py
getnews.py
这两种视图中都应该可以:

你试过了吗

from .models import newsurls, newsblock 
请阅读有关PEP8的内容,因为您的代码格式不正确


编辑:我看到您试图这样做,但没有“.”符号。请注意,前面的模型是那样的“.”。模型

如果它在同一个目录中,为什么不简单地从模型导入xyz的
?好吧,如果你所描述的是真的,那真的很奇怪。此时,我要做的是在getnews.py相同的目录中创建一个全新的文件,并只添加一行“from news.models import newsrls,newsblock”。看看这是否有效。如果它不起作用,就意味着你的视图中有一些特别的东西;如果它真的起作用,那就意味着你的getnews有问题,py。不管是哪一个,开始从有问题的文件中逐段复制代码到您的文件中,并尝试找到问题所在的位置。@PepperOnipa从模型导入新闻URL,新闻块获取:ImportError:设置无法导入,因为环境变量DJANGO_Settings_MODULE未定义。@Jerry Meng,谢谢,我在同一个目录中创建了一个新文件,没有任何乐趣。。将views.py添加到原始post@Jamie Cockburn:不,它们位于同一目录中,因此news包含views.py和getnews.py以及models.py和init.py。但是已经尝试从newshuffle.news.models import…@joeskru在这种情况下,
从news.models import…
也不应该从
views.py工作。也许你应该像我的回答一样,在你的问题中添加目录结构的相关部分,这样我们就可以找到问题的根源了。@Jamie Cockburn更新了原来的帖子,首先真的应该包括它吗?抱歉#没有必要添加“getnews.py”的内容,因为我只尝试了从模型导入中导入的内容。。。得到这个回溯:。。。ImportError:无法导入设置,因为环境变量DJANGO_Settings_MODULE未定义。感谢szymanskilukasz仍然收到错误:回溯(最近一次调用last):文件“/home/skru/newshuffle/news/getnews.py”,第3行,from.models导入新闻URL,新闻块值错误:尝试在非包中进行相对导入
 ├── db.sqlite3
 ├── manage.py
 ├── news
 │   ├── static
 │   │   └── news
 │   │       ├── news.css
 │   │       └── ...
 │   ├── templates
 │   │   └── news
 │   │       ├── allnews.html
 │   │       └── ...
 │   ├── __init__.py
 │   ├── admin.py
 │   ├── dd.py
 │   ├── getPrevDate.py
 │   ├── getnews.py
 │   ├── models.py
 │   ├── storyDb.p
 │   ├── tests.py
 │   ├── urls.py
 │   ├── views.py
 └── newsshuffle
     ├── __init__.py
     ├── settings.py
     ├── urls.py
     └── wsgi.py
#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "newsshuffle.settings")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)
from models import ...
from .models import newsurls, newsblock