在django中有没有办法导入所有模块
ex: from project.models import *
ex: from project1.models import *
Run Code Online (Sandbox Code Playgroud)
这可以用一条语句来完成吗
我有一个管理操作,它将当前选择和处理程序类(子类object)存储到会话中,并重定向到另一个处理选择的页面.但是,出于某种原因,每当我这样做时,整个会话都会丢失.
实际发生的是我在调用视图函数时遇到错误,该会话没有键'action_options'.深入研究实际发生的事情,变量在会话中设置得很好,但是在调用视图时,会话完全为空,包括以前肯定存在的管理登录.所有其他页面(即内置管理页面)加载正常.
这是行动:
def myaction(self, request, queryset):
opts = request.session.setdefault('action_options', {})
opts['queryset'] = queryset
opts['handler'] = MyHandlerClass
request.session.modified = True
return HttpResponseRedirect(reverse('myapp.views.handler_view'))
Run Code Online (Sandbox Code Playgroud)
这是视图,目前只打印出选项集:
def handler_view(request):
opts = request.session['action_options']
return HttpResponse(str(opts))
Run Code Online (Sandbox Code Playgroud)
我也试过直接存储查询集,即request.session['queryset'] = queryset,但我得到相同的行为.但是,如果我保存主键列表,那很好.
作为参考,这是我的中间件定义:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'johnny.middleware.LocalStoreClearMiddleware',
'johnny.middleware.QueryCacheMiddleware',
)
Run Code Online (Sandbox Code Playgroud)
我正在使用Johnny Cache,具有以下配置:
CACHES = {
'default' : dict(
BACKEND='johnny.backends.memcached.MemcachedCache',
LOCATION=['127.0.0.1:11211'],
JOHNNY_CACHE=True,
)
}
JOHNNY_MIDDLEWARE_KEY_PREFIX = 'jc_myproj'
Run Code Online (Sandbox Code Playgroud) Django 文档说我可以打电话settings.configure而不是电话DJANGO_SETTINGS_MODULE.我希望我的网站项目能够做到这一点.我应该在什么文件中拨打电话,settings.configure以便在正确的时间配置我的设置?
根据Daniel Roseman的评论编辑:
我想这样做的原因是settings.configure让你传递设置变量作为kwargs dict,例如{'INSTALLED_APPS': ..., 'TEMPLATE_DIRS': ..., ...}.这将允许我的应用程序的用户在dict中指定他们的设置,然后将该dict传递给我的应用程序中的一个功能,该功能使用我的应用程序工作所需的某些设置来增强它,例如添加条目INSTALLED_APPS.
我想象的是这样的.我们打电话给我的应用程序"rexe_app".在wsgi.py中,我的应用程序的用户会这样做:
import rexe_app
my_settings = {'INSTALLED_APPS': ('a','b'), ...}
updated_settings = rexe_app.augment_settings(my_settings)
# now updated_settings is {'INSTALLED_APPS': ('a','b','c'), 'SESSION_SAVE_EVERY_REQUEST': True, ...}
settings.configure(**updated_settings)
Run Code Online (Sandbox Code Playgroud) 我已经开始在我的 Django 项目中使用 tinymce。我需要启用一些与 django-tinymce 捆绑在一起的插件(例如,模板)。因此,在我的 settings.py 中,我添加了以下配置:
TINYMCE_DEFAULT_CONFIG = {
'theme': 'advanced', 'relative_urls': False,
'plugins': 'template',
'toolbar': 'template'
}
MAX_UPLOAD_SIZE = 512000
Run Code Online (Sandbox Code Playgroud)
认为他们可能会启用模板插件,但似乎没有。如何在 django-tinymce 中启用插件?我没有在任何地方找到这个。
感谢您的建议!
更新:
我想我误解了配置是如何完成的。我用一些配置创建了一个 config.js:
tinyMCE.init({
theme: 'advanced',
plugins: 'template',
height: '350px',
width: '1000px'
});
Run Code Online (Sandbox Code Playgroud)
然后,我从 MyModelAdmin.Media 链接它。(我正在从 django-admin 加载编辑器。)
class MyModelAdmin(ModelAdmin):
class Media:
from django.conf import settings
js = (
settings.STATIC_URL + 'tiny_mce/config.js',
)
Run Code Online (Sandbox Code Playgroud)
config.js 似乎正确加载,但我看不出任何区别。
我已经在网上搜索解决方案,但似乎没有任何效果.我收到错误:
ImproperlyConfigured at /tool/page4/
Error importing module mysite.context_processors: "No module named context_processors"
Run Code Online (Sandbox Code Playgroud)
settings.py
TEMPLATE_CONTEXT_PROCESSORS = (
# default context processors for Django 1.4
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.tz",
"django.contrib.messages.context_processors.messages",
"django.core.context_processors.request",
"mysite.context_processors.baseurl",
)
Run Code Online (Sandbox Code Playgroud)
views.py
if(team_value != "---------" && product_value != "---------" && type_team.length > 3 && pattern_value.length > 1)
{
$.ajax({
url: {{BASE_URL}}'/tool/page4/add_team/',
type: 'POST',
dataType: 'html',
data: {
"team" : team_value,
"product" : product_value,
"pattern" : pattern_value,
"type" : type_team,
"array" : data_array
},
async: false,
error: function(XMLHttpRequest, textStatus, …Run Code Online (Sandbox Code Playgroud) 我试图对我的Django程序进行单元测试,我想在我的settings.py文件中检查一些变量的几个值.
在文档中," 覆盖设置 "部分描述了一种方法.但是,尽管我尝试了所有的尝试,但在测试运行时,我很难在程序中进行更改.以下是我在最小示例上所做的总结:
首先,创建一个新项目:
$ pyvenv virtualenv
$ cd virtualenv/
$ . bin/activate
(virtualenv) $ pip install django
(virtualenv) $ django-admin startproject myapp
(virtualenv) $ cd myapp/
Run Code Online (Sandbox Code Playgroud)
然后,添加以下文件.
settings.py...
TEST_VALUE = 'a'
Run Code Online (Sandbox Code Playgroud)
tests.pyfrom django.test import TestCase
from myapp.settings import TEST_VALUE
class CheckSettings(TestCase):
def test_settings(self):
self.assertEqual(TEST_VALUE, 'a')
def test_modified_settings(self):
with self.settings(TEST_VALUE='b'):
self.assertEqual(TEST_VALUE, 'b')
Run Code Online (Sandbox Code Playgroud)
当我运行测试时,我得到以下内容:
$ ./manage.py test
Creating test database for alias 'default'...
F.
======================================================================
FAIL: test_modified_settings (myapp.tests.CheckSettings)
----------------------------------------------------------------------
Traceback (most recent call last): …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Pycharm 社区版来改进我的 Django 应用程序中的代码,但我无法运行我想要的所有 Django 代码。我不断收到此回溯...
Traceback (most recent call last):
File "C:/Users/Jaysp_000/firstSite/PROJECTone/blog_static/views.py", line 1, in <module>
from django.views.decorators.csrf import csrf_exempt
File "C:\Python34\lib\site-packages\django\views\decorators\csrf.py", line 3, in <module>
from django.middleware.csrf import CsrfViewMiddleware, get_token
File "C:\Python34\lib\site-packages\django\middleware\csrf.py", line 14, in <module>
from django.utils.cache import patch_vary_headers
File "C:\Python34\lib\site-packages\django\utils\cache.py", line 26, in <module>
from django.core.cache import caches
File "C:\Python34\lib\site-packages\django\core\cache\__init__.py", line 34, in <module>
if DEFAULT_CACHE_ALIAS not in settings.CACHES:
File "C:\Python34\lib\site-packages\django\conf\__init__.py", line 48, in __getattr__
self._setup(name)
File "C:\Python34\lib\site-packages\django\conf\__init__.py", line 42, in _setup
% (desc, ENVIRONMENT_VARIABLE)) …Run Code Online (Sandbox Code Playgroud) 我正在部署,但是当我从dev服务器切换到gunicorn时,我的静态文件没有被找到.我跑了collectstatic,文件已被收集.
请注意我的设置文件中我打印的静态文件的路径.这是我的枪炮日志:
/home/jcg/code/python/venvs/baseball/baseball_stats/collect_static
Not Found: /static/admin/css/base.css
Not Found: /static/admin/css/dashboard.css
Run Code Online (Sandbox Code Playgroud)
这是我的设置文件.我已经正确更新了(我希望)原始django 1.6版本的设置.
"""
Django settings for baseball_stats project.
For more information on this file, see
https://docs.djangoproject.com/en/1.6/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.6/ref/settings/
"""
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
# this for reading environment variables for private values (secret_key, etc)
# copy this to .bashrc or if using virtualvenvwrapper to bin/postactivate script
# EXPORT VARIABLE=thevaluegoeshere
import get_env_variable
BASE_DIR = os.path.dirname(os.path.dirname(__file__)) …Run Code Online (Sandbox Code Playgroud) 我django.db.utils.OperationalError: (1698, "Access denied for user 'root'@'localhost'")用mysql的时候有。用户名和密码正确:
DB_HOST = '127.0.0.1'
DB_USER = 'root'
DB_PASSWORD = ''
Run Code Online (Sandbox Code Playgroud)
我可以以root身份登录mysql:
$ sudo mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 16
Run Code Online (Sandbox Code Playgroud)
但不是cchilders:
$ mysql -u root
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
Run Code Online (Sandbox Code Playgroud)
这可能会导致问题。上次我安装mysql时没有发生这种情况,所以对我来说没有意义。我的客户很好:
$ pip3 freeze
Django==1.10.5
mysqlclient==1.3.9
Run Code Online (Sandbox Code Playgroud)
如何让我的普通用户运行 mysql,以便我可以在终端中运行 django?谢谢你
脏的解决办法:
没有任何修复,总是运行 mysql 作为 sudo
我在本地机器上使用 django。为了提供静态文件,我将 WhiteNoise 与它一起使用。当DEBUG = True所有静态文件都正确提供时。但是当我更改DEBUG = False并设置时,ALLOWED_HOSTS = ['*']我收到了 500 服务器错误。但是管理站点加载没有任何错误。此外,当我注释掉时,STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'我没有收到 500 错误。
我按照http://whitenoise.evans.io/en/stable/django.html 中给出的文档来连接 whitenoise。我没有对wsgi.py文件进行任何更改。我跑了python manage.py collecststatic,它没有任何错误地运行。
下面settings.py给出:
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
SECRET_KEY = 'fdft&b(xb*!qq3ghjkjhg6789ih8ik!w10$0uscxcpqpmz'
DEBUG = False
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
'whitenoise.runserver_nostatic', #Disable Djangos static file server during DEVELOPMENT
'gep_app.apps.GepAppConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware', …Run Code Online (Sandbox Code Playgroud) django django-settings django-staticfiles collectstatic whitenoise
django ×10
django-settings ×10
python ×8
python-3.x ×2
base-url ×1
django-views ×1
mysql ×1
pycharm ×1
session ×1
tinymce ×1
unit-testing ×1
whitenoise ×1