Python django:无法在与模型相同的路径上将模型导入到.py
我已经阅读了SO和所有django文档中的所有内容,寻找解决方案。我的模型工作得非常好,但我不能将它们导入到与models.py位于同一目录下的“getnews.py”文件中,我可以导入到views.py,并且绝对没有循环导入 models.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
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