我已经阅读了很多问题和文章,但找不到我所遗漏的内容.
这是我的conf:
settings.py
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(os.path.dirname(__file__),'static').replace('\\', '/'),
)
Run Code Online (Sandbox Code Playgroud)
urls.py
urlpatterns = [
url(r'^$', include('home.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^artist/', include('artists.urls')),
url(r'photo/', include('photo.urls'))
]
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Run Code Online (Sandbox Code Playgroud)
无论如何,我的媒体服务,因为当我去http:// localhost:8000/media/path/to/image.jpg时,我有我的形象.
但是当我在模板中时,我会这样:
<img class="avatar secondary-content" src="{{MEDIA_URL}}{{artist.artist_image}}">
Run Code Online (Sandbox Code Playgroud)
我只有图像路径.当我{{MEDIA_URL}}用'/ media /' 更改html时,它可以工作.
因此,似乎我MEDIA_URL没有设置模板,据我搜索,我看不到我错过了什么.
我在django 1.8.2.如果您需要任何信息,请问我.
可能看起来像一个已经回答的问题,实际上在这里你有同样的问题(有点)我有.我的问题是,这只是一个技巧,一行,没有解释(但仍然是不同的,但给出的解决方案是有效的,这是我的问题的一部分).这是我的项目结构,简化:
manage.py
compfactu/---settings.py
|--__init__.py
|--core/--------__init__.py
|-apps.py
Run Code Online (Sandbox Code Playgroud)
所以这是我添加我的应用程序的方式INSTALLED_APPS:
apps.py
from django.apps import AppConfig
class CoreConfig(AppConfig):
name = 'core'
Run Code Online (Sandbox Code Playgroud)
settings.py
INSTALLED_APPS = [
...
#compfactu modules
'compfactu.core.apps.CoreConfig',
]
Run Code Online (Sandbox Code Playgroud)
当我阅读django 1.11文档时,我引用:
新应用程序应避免使用default_app_config.相反,他们应该要求在INSTALLED_APPS中显式配置相应AppConfig子类的虚线路径.
好吧,这是一个新的应用程序,所以我应该这样做:但我收到一个错误.这不是pythonpath的问题,因为我只是打开了一个python shell而且我可以from compfactu.core.apps import CoreConfig毫无问题地打印(打印sys.path也一切都很好).
但我有这个错误,这是一个完整的追溯:
Traceback (most recent call last):
File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/apps/config.py", line 147, in create
app_module = import_module(app_name)
File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File …Run Code Online (Sandbox Code Playgroud) 我在django项目中的另一个应用程序中导入应用程序时出现问题.我知道在这个问题上有几个问题/ asnwsers,相信我,我读了很多,甚至一些关于python导入.
这是我的项目树(我将把真正的文件夹名称):
was/ # full path from my computer /home/user/project/was
....was/ #django project created by django-admin startproject 'was'
....manage.py
....artists/ #first app
....migrations/
....templates/
....__init__.py
....other_python_files.py
....crew/ #second app
....migrations/
....templates/
....__init__.py
....some_files.py
....was/ # folder containing settings.py, main urls.py
....__init__.py
Run Code Online (Sandbox Code Playgroud)
我的第一个项目(/ home/user/project/was)包含virtualenv生成文件夹(python3.4).
我检查了我的python路径sys.path和Pycharm中的项目结构,并且/ home/user/project/was.
当我在PyCharm中执行此操作时,我自动完成工作正常:
from ..crew.models import MyClass #here i'm in a artists app file
Run Code Online (Sandbox Code Playgroud)
但我得到了一个 ValueError :attempted relative import beyond top-level package when import app
现在,同样的情况,在艺术家应用程序中导入一个船员类但是:
from was.crew.models import MyClass
Run Code Online (Sandbox Code Playgroud)
自动完成在pycharm中运行良好,但这次我得到了经典的ImportError : no name …
我现在正在努力解决这个问题.我正在尝试使用pyppeteer以pdf格式导出视图.这是我的功能:
async def export_pdf(url):
browser = await launch()
page = await browser.newPage()
await page.goto(url)
pdf = await page.pdf(
{
'printBackground': True
}
)
await browser.close()
return pdf
Run Code Online (Sandbox Code Playgroud)
在我的观点中称之为:
response.content = asyncio.get_event_loop().run_until_complete(
export_pdf(self.request.get_full_path())
)
Run Code Online (Sandbox Code Playgroud)
但我得到了这个错误
/ export-pdf/1/2018/1/1的RuntimeError /线程'Thread-1'中没有当前事件循环.
经过一些研究,我认为有人解决了我的问题,我就这样称呼它(不太明白,但它是关于django和我的函数没有在主线程中调用的):
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
response.content = loop.run_until_complete(
export_pdf(
asyncio.wait(
export_pdf(self.request.get_full_path())
)
)
)
loop.close()
Run Code Online (Sandbox Code Playgroud)
但现在我有这个错误:
/ export-pdf/1/2018/1/1 /上的TypeError期望一个期货清单,而不是协程
我对python中的async很新,事实上,当我在ipython shell中复制并粘贴完全相同的代码时,一切正常.
任何解释/光将不胜感激!
提前致谢.
编辑: 经过一些研究,我设法得到另一个错误,这是
信号仅在主线程中有效
奇怪的是,错误来自/usr/lib/python3.6/signal.py甚至来自我的virtualenv.
我一直在寻找一段时间,但找不到我的问题的答案。我在 vim 上编码,我尝试了新的格式字符串版本f'whatever {a_var}',但我的 flake8/syntastic 一直告诉我这是一个语法错误。
你知道如何解决这个问题吗?
我已经遇到了 python3.6 和 virtualenv 的 vim-jedi 问题,经过数小时的研究,我在一些 github 问题中发现了一个 hack,但在这里我找不到任何东西。
在此先感谢您的帮助。