当我使用allauth时,除了Django现在无法找到静态文件外,一切似乎都能正常工作.没有allauth所有静态文件都被渲染.allauth的设置需要添加
TEMPLATE_CONTEXT_PROCESSORS = (
"allauth.context_processors.allauth",
"allauth.account.context_processors.account"
)
Run Code Online (Sandbox Code Playgroud)
我之前的设置文件中没有TEMPLATE_CONTEXT_PROCESSORS.有什么东西我错过了吗?我该如何解决这个问题.当我看到DEBUG控制台时,我可以看到它正在尝试获取css文件
"GET /accounts/login/css/contact.css"
Run Code Online (Sandbox Code Playgroud)
而它应该这样做
"GET /static/css/contact.css"
Run Code Online (Sandbox Code Playgroud) 如何迭代所有Django设置?我需要阅读所有开头的设置MYAPP_.
我试过这样做:
from django.conf import settings
for setting in settings:
print setting
Run Code Online (Sandbox Code Playgroud)
...但我得到以下异常:
TypeError: 'LazySettings' object is not iterable
Run Code Online (Sandbox Code Playgroud)
有关如何实现这一目标的任何想法?
Hello StackOverFlowers :)到目前为止我一直在同一个微EC2实例上运行我的Django后端和我的PostgreSQL数据库.
我已经设置了两个EC2实例,一个用我的django后端,另一个用我的PostgreSQL数据库,我使用pgadminII来管理它.两个实例都使用相同的安全组,并打开所有相同的端口.我已将弹性IP附加到我的Django实例,并将另一个弹性IP附加到我的Postgresql实例.
现在我知道在settings.py中我需要将'HOST'更改为PostgreSQL实例的地址.但我不太清楚该放什么.我是否放置了PostgreSQL实例的弹性IP?
我做了一些研究,很多消息来源说我需要输入PostgreSQL实例的内部服务器IP地址.如果是这种情况,我怎样才能找到内部服务器IP地址并将其输入"主机"?为了清楚起见,我复制并粘贴了下面的settings.py代码.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'django_db',
'USER': 'django_login',
'PASSWORD': 'password',
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助,如果我不够清楚,请发表评论并告诉我,以便我能为您和其他人更清楚:)
我在这些行中添加了用于媒体和图像输出到模板的URL.但我遇到了这样的错误. 名称'设置'未定义 如何解决?
urlpatterns =+ patterns('',
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.STATIC_ROOT,
}),
url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.MEDIA_ROOT,
}),
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用模型类的值定义一个常量,settings.py以便为我的模型之一提供动态定义的 FK:
from catalog.models import Product
PRODUCT_MODEL = Product
Run Code Online (Sandbox Code Playgroud)
毫不奇怪,它会导致AppRegistryNotReady异常:
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
Run Code Online (Sandbox Code Playgroud)
因为没有调用django.setup()方法。
如果我添加
import django
django.setup()
Run Code Online (Sandbox Code Playgroud)
在模型的导入之前,而不是AppRegistryNotReady例外,我得到
AttributeError: 'Settings' object has no attribute 'PRODUCT_MODEL'
Run Code Online (Sandbox Code Playgroud)
当我使用
from django.conf import settings
...
product = models.ForeignKey(
settings.PRODUCT_MODEL,
related_name='order_items')
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以实现这一点而不会出错?
我使用的是 Python 3.5 和 Django 1.9.5。
昨晚我将我的项目上传到pythonanywhere.com,在那里我想测试我的生产设置.在我的一个模型中,我允许用户上传 JPG(团队徽标).上传过程运行良好,文件落在我的MEDIA_ROOT中.问题是,当我尝试在我的模板中访问它(在页面上显示它)时,我得到了404.我的第一个想法是我的MEDIA_URL配置不正确但我仍然不知道为什么.我想说我的媒体文件夹不在项目中 - 它在外面.在开发模式下,我看到了Logo(我正确设置了settings settings.DEBUG:urlpattern + = static(...)选项).
我正在使用Django 1.9.7和python 2.7这是我的代码:
我的模特:
class Team(models.Model):
name = models.CharField(verbose_name='Name of the team', max_length=24)
logo = models.ImageField(upload_to='team_logos', verbose_name='Logo', blank=True, null=True)
def get_logo(self):
u"""Get path to logo, if there is no logo then show default."""
if self.logo:
return self.logo.url
return '/static/img/default_team_logo.jpg'
Run Code Online (Sandbox Code Playgroud)
我的Settings.py:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "media", "soccerV1", "static")
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "media", "static"),
)
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "media", "soccerV1", "media")
Run Code Online (Sandbox Code Playgroud)
我的模板,我呼吁的标志:
<td><img …Run Code Online (Sandbox Code Playgroud) 我有一个具有以下结构的 djanog 项目:
--|src
--project
--|settings
--__init__.py
--production.py
--local.py
--|app1
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,我导入了设置 ( from django.conf import settings),然后在我按照教程进行操作时,他们说要这样做getattr(settings, VARIABLE)。那对我不起作用。相反,我可以这样做:settings.VARIABLE。有什么不同?
哦,我跑了type(settings),它输出了<class 'django.conf.LazySettings'>.
我们将 Django 用于Speedy Net 和 Speedy Match(目前为 Django 2.1)。我们的一些设置被模型使用。例如:
class USER_SETTINGS(object):
MIN_USERNAME_LENGTH = 6
MAX_USERNAME_LENGTH = 40
MIN_SLUG_LENGTH = 6
MAX_SLUG_LENGTH = 200
# Users can register from age 0 to 180, but can't be kept on the site after age 250.
MIN_AGE_ALLOWED_IN_MODEL = 0 # In years.
MAX_AGE_ALLOWED_IN_MODEL = 250 # In years.
MIN_AGE_ALLOWED_IN_FORMS = 0 # In years.
MAX_AGE_ALLOWED_IN_FORMS = 180 # In years.
MIN_PASSWORD_LENGTH = 8
MAX_PASSWORD_LENGTH = 120
MAX_NUMBER_OF_FRIENDS_ALLOWED = 800
PASSWORD_VALIDATORS = [ …Run Code Online (Sandbox Code Playgroud) 我正在浏览Django 的 文档ALLOWED_HOSTS here
我['localhost', '127.0.0.1', '[::1]']在ALLOWED_HOSTS.
除了'[::1]'部分,一切看起来都很好。
我找不到使用的实时场景'[::1]'。
有人可以解释一下我们将在哪个用例中使用它 [::1]
我已将以下日志记录配置添加到我的 Django 应用程序settings.py文件中:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django': {
'handlers': ['console'],
'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
},
},
}
Run Code Online (Sandbox Code Playgroud)
现在,我只想在 中的一个视图中添加一些自定义日志记录views.py,但看起来记录器是NOTSET,这意味着只记录级别warning和更高级别:
import logging
from django.http import JsonResponse
logger = logging.getLogger(__name__)
def testing(request):
logger.info("Doesn't show...")
logger.warning(f"Log Level: {logger.level} = {logging.getLevelName(logger.level)}")
return JsonResponse({"Hello": "World"})
Run Code Online (Sandbox Code Playgroud)
上面的代码片段记录了以下内容:
Log Level: 0 = NOTSET
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?为什么没有设置记录器的级别(即使我清楚地设置了它settings.py)?
django ×10
django-settings ×10
python ×6
amazon-ec2 ×1
django-apps ×1
hosts ×1
logging ×1
overriding ×1
pgadmin ×1
postgresql ×1
python-3.x ×1
subdomain ×1