小编Bes*_*ung的帖子

Django:未在模板中设置MEDIA_URL

我已经阅读了很多问题和文章,但找不到我所遗漏的内容.

这是我的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.如果您需要任何信息,请问我.

python django python-3.x

10
推荐指数
2
解决办法
1万
查看次数

Django:无法导入'模块'.检查模块AppConfig.name是否正确

可能看起来像一个已经回答的问题,实际上在这里你有同样的问题(有点)我有.我的问题是,这只是一个技巧,一行,没有解释(但仍然是不同的,但给出的解决方案是有效的,这是我的问题的一部分).这是我的项目结构,简化:

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)

python django python-3.x

9
推荐指数
1
解决办法
4150
查看次数

在django项目中导入应用程序

我在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 …

python django python-import python-3.x

5
推荐指数
1
解决办法
8346
查看次数

视图中的Django asyncio调用不起作用

我现在正在努力解决这个问题.我正在尝试使用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.

python django python-3.x python-asyncio pypputeer

5
推荐指数
1
解决办法
1077
查看次数

Vim flake8 python 3.6 支持

我一直在寻找一段时间,但找不到我的问题的答案。我在 vim 上编码,我尝试了新的格式字符串版本f'whatever {a_var}',但我的 flake8/syntastic 一直告诉我这是一个语法错误。

你知道如何解决这个问题吗?

我已经遇到了 python3.6 和 virtualenv 的 vim-jedi 问题,经过数小时的研究,我在一些 github 问题中发现了一个 hack,但在这里我找不到任何东西。

在此先感谢您的帮助。

vim flake8 python-3.6

3
推荐指数
1
解决办法
1350
查看次数