gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 05:08:57 25 4
gpt4 key购买 nike

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

模型.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)

在views.py中:(有效)

from news.models import newsurls, newsblock 

getnews.py:(不起作用)

from news.models import newsurls, newsblock

回溯:

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

views.py:

from django.shortcuts import render_to_response
from news.models import newsurls, newsblock
try:
import cPickle as pickle
except:
import pickle
import random

def news(request):
newsDatabase = open('/home/skru/newsshuffle/news/storyDb.p', 'r+')
openData = newsDatabase.read()
dstory = pickle.loads(openData)
count = dstory['count']['links']
story = []
outstorys = []
keys = dstory.keys()
for key in keys:
if key != 'count':
story.append(dstory[key]['genre'])
story.append(dstory[key]['title'])
story.append(dstory[key]['url'])
story.append(dstory[key]['image'])
story.append(dstory[key]['bgcolor'])
story.append(dstory[key]['via'])
story.append(dstory[key]['tcolor'])
outstorys.append(story)
story = []

random.shuffle(outstorys)


lists = newsurls.objects.order_by('-pub_date')[:100]
return render_to_response('news/news.html',
{
'story_list':outstorys,
'count':count,
'lists':lists,
})

文件路径:

 ├── 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

我尝试了各种不同的导入“newsshuffle.news.models”等..,按照其他提要中的建议,手动将系统路径添加到系统路径,请帮忙!!

管理.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_MODULE 但正如您所看到的那样

最佳答案

鉴于该目录结构,您的导入应该可以正常工作。

尝试相对导入怎么样?在 views.pygetnews.py 中,这个应该工作:

from models import ...

关于python - django:无法将模型导入到与模型相同路径上的.py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24556154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com