我有一个Django webapp.我已经安装了debug_toolbar中间件和模块.但是,我的webapps没有调试工具栏拉出.
我如何实际看到调试工具栏?还有什么我需要做的吗?我是否需要为我的webapp使用特定模板?我已经按照自述文件中的所有步骤进行了操作,但这还不够 - 似乎还有一些其他依赖项,或者其他我缺少的东西.
此外,望着URL模式集合了我的web应用程序时,将调试前缀不是公认的模式中找到.我在debug_toolbar中放入了一个urls.py日志,以确保激活的debug_toolbar应用程序正在加载模块.
这让我完全神秘,我找不到谷歌或自述文件来做这个实际显示,或者要求是什么,所以你能提供的任何指针都会很棒!
编辑:事实证明,我正在使用SSH隧道从运行浏览器的机器到运行Django/Apache的机器进行测试.在这种情况下,远程机器实际看到的IP地址不是我想象的那样,因此"好"IP列表不包含浏览器的明显远程机器.修复那个解决了问题!
我有这样的请求:
$http({
method: 'POST',
url: '/url/',
data: 'test=data'
})
Run Code Online (Sandbox Code Playgroud)
在我的django观点中:
class SomeClass(View):
def get(self, request):
return HttpResponse("Hello")
def post(self, request):
print request.post
print request.body
return HttpResponse("Done")
Run Code Online (Sandbox Code Playgroud)
所以,当我这样做时,request.POST
我得到一个空的查询字典:<QueryDict: {}>
但我request.body
有:test=data
所以我相信django将数据作为url编码的参数而不是字典接收.
如何以JSON/Dict发送或接收此数据?
我想QPushButton
在状态栏中添加两个小部件(比如说),一个在左边,另一个在右边.
我想在两个小部件之间添加水平间隔,但不知道如何添加.
PS:我尝试使用addWidget()
添加到左侧并addPermanentWidget()
添加到右边但它看起来不整洁而且感觉不对.
我有一个带有可检查项目的 QListWidget,到目前为止它工作正常。现在我不仅想通过单击小复选框矩形来检查项目,而且还想通过单击项目本身来检查项目。
所以我实现了这个功能
void TagList::on_tagList_itemClicked(QListWidgetItem *item)
{
if( item==nullptr )
return;
clicked_ = true;
if( item->data(Qt::CheckStateRole) != Qt::Checked )
item->setData( Qt::CheckStateRole, Qt::Checked );
else
item->setData( Qt::CheckStateRole, Qt::Unchecked );
clicked_ = false;
}
Run Code Online (Sandbox Code Playgroud)
(clicked_ 是我接下来描述的脏黑客的类变量。)
它设置了项目单击时的检查状态,但是现在项目不再可以通过单击复选框矩形来检查,因为它被 ListWidget 和我的插槽切换了两次。不幸的是,ListWidget 仅使用单列模型,因此我无法区分对复选框的点击和对模型索引对项目的点击。
然后我也实现了
void TagList::onModelItemChanged(QModelIndex tl, QModelIndex br, QVector<int> roles)
{
if( (roles.empty() || roles.contains(Qt::CheckStateRole)) && !clicked_ ){
qDebug() << "changed with no click";
clicked_ = true;
if( tl.data(Qt::CheckStateRole)== Qt::Unchecked )
ui->tagList->model()->setData(tl,Qt::Checked,Qt::CheckStateRole);
else
ui->tagList->model()->setData(tl,Qt::Unchecked,Qt::CheckStateRole);
clicked_ = false;
}else{
qDebug() << "changed after click";
} …
Run Code Online (Sandbox Code Playgroud) 我想为内置auth.User
模型添加一个自定义管理器。
由于链接到 auth_user 表的数据库中的现有数据,我避免切换到我自己的用户模型。
所以我将以下内容添加到models.py:
from django.contrib.auth.models import User, UserManager
class ActiveUserManager(UserManager):
use_in_migrations = False
def get_queryset(self):
return super().get_queryset().filter(is_active=True)
# Monkeypatch auth.User to have custom manager
User.add_to_class('active_users', ActiveUserManager())
Run Code Online (Sandbox Code Playgroud)
这似乎有效,直到当我运行时python manage.py makemigrations
,Django000n_auto_20181002_1721.py
在myvenv/Lib/site-packages/django/contrib/auth/migrations
文件夹中创建一个迁移文件,内容如下:
# imports omitted
class Migration(migrations.Migration):
dependencies = [
('auth', '0008_alter_user_username_max_length'),
]
operations = [
migrations.AlterModelManagers(
name='user',
managers=[
('active_users', django.db.models.manager.Manager()),
('objects', django.contrib.auth.models.UserManager()),
],
),
]
Run Code Online (Sandbox Code Playgroud)
use_in_migrations = False
在课堂ActiveUserManager
上设置无济于事。
我非常感谢您就如何避免创建此迁移文件或如何在auth.User
没有此行为的情况下向内置模型添加自定义管理器的建议。我正在使用 Django 1.11。
在C++中,有一种方法可以将char转换为int并获得ascii值.有没有这样的方法用qchar做同样的事情?由于unicode支持如此多的角色,其中一些实际上看起来很相似,因此有时很难分辨出一个人在处理什么.显式代码点或可用于获取此类代码的数字将非常有用.
我搜索了一个网站和这个网站寻求解决方案,但到目前为止没有运气,Qt文档也没有多大帮助,除非我忽略了一些东西.
先感谢您!
编辑:
也许我对此事不够清楚,抱歉.
这是一些代码:
char chChar = 'a';
cout << (int)chChar; // will output 97, not 'a'
Run Code Online (Sandbox Code Playgroud)
此外,Qt允许这样:
QChar ch = 'a';
if(ch == 0x61)
//...
Run Code Online (Sandbox Code Playgroud)
据我所知,必须有一些与ch对象中的unicode代码点相关的信息.有可能把它从那里拿出来吗?
正如pytest 文档中所建议的,我设置了我的包,目的不是不将我的测试与我的包一起分发:
\n\nsetup.py\nmypkg/\n __init__.py\n mypkg/\n appmodule.py \ntests/\n test_app.py\n ...\n
Run Code Online (Sandbox Code Playgroud)\n\n但我对如何确保这些测试在存在时正确运行(例如在 Travis CI 上或在项目目录的克隆中)感到困惑。
\n\n我希望测试脚本中的导入应用于相邻mypkg/
目录中的源(而不是任何mypkg
可能安装在 中的源site-packages
),但我遇到了令我困惑的错误。
如果我遵循文档中的建议pytest
并且不__init__.py
添加tests/
then
from __future__ import absolute_import\nfrom mypkg.appmodule import * \n
Run Code Online (Sandbox Code Playgroud)\n\n我明白了
\n\n\n\n\n导入错误:没有名为 mypkg.appmodule 的模块
\n
当与
\n\nfrom __future__ import absolute_import\nfrom ..mypkg.appmodule import * \n
Run Code Online (Sandbox Code Playgroud)\n\n我明白了
\n\n\n\n\nValueError:尝试在非包中进行相对导入
\n
如果我忽略文档并包含一个__init__.py
,那么对于后者我会得到
\n\n\nValueError:尝试超出顶级包的相对导入
\n
仅通过包含 …
这是我的页面:
<p>Request as string: {{ request.POST }}</p>
Run Code Online (Sandbox Code Playgroud)
哪个正确呈现:
作为字符串请求: <QueryDict: {'csrfmiddlewaretoken': ['HPOQ0pfVf5DU0Lkz05IXqbECipdPUOcTiNGYWd4giZC7LVL5Y6jdT0nb0AcmX9pd'], 'txtNumBins': ['3'] }>
我正在尝试访问列表 txtNumBins。但是当我在 Django 模板中尝试以下任何操作时:
<p>Total bins: {{ request.POST['txtNumBins'][0] }} </p>
<p>Total bins: {{ request.POST.get('txtNumBins')[0] }} </p>
<p>Total bins: {{ request.POST['txtNumBins'] }} </p>
<p>Total bins: {{ request.POST.get('txtNumBins') }} </p>
Run Code Online (Sandbox Code Playgroud)
我不断收到相同的错误:
TemplateSyntaxError at /analysis/
Could not parse the remainder: '['txtNumBins'][0]' from'request.POST['txtNumBins'][0]'
Run Code Online (Sandbox Code Playgroud)
如何按名称访问字典元素 txtNumBins?
我正在尝试将int转换为QBytearray.我正在使用这个方法QByteArray :: number(m_vman); 这是对的吗?
我正在尝试使用number()来获取QBytearray的int
我正在尝试以下代码,但bytearray为零
QByteArray vmanByteArray, vheaterByteArray;
QDataStream streamVMan(&vmanByteArray, QIODevice::WriteOnly);
QDataStream streamVHeater(&vheaterByteArray, QIODevice::WriteOnly);
streamVMan << m_vman;
streamVHeater << m_vheater;
QByteArray arr = m_htman ? vmanByteArray : vheaterByteArray;
Run Code Online (Sandbox Code Playgroud)