我在django.contrib.auth.User和django.contrib.auth.Group的帮助下尝试使用Code
for g in request.user.groups:
l.append(g.name)
Run Code Online (Sandbox Code Playgroud)
但那失败了,我收到了以下错误:
TypeError at /
'ManyRelatedManager' object is not iterable
Request Method: GET
Request URL: http://localhost:8000/
Exception Type: TypeError
Exception Value:
'ManyRelatedManager' object is not iterable
Exception Location: C:\p4\projects\...\users.py in permission, line 55
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
我想将Django应用程序包含在我正在进行的项目中.该应用程序托管在Github上(https://github.com/lmorchard/django-badger).除了包含好东西的应用程序目录外,根目录中还有一些文件 - 自述文件,LICENSE,TODO和setup.py.如果我将应用程序克隆到项目的根目录中,则app文件夹将位于正确的位置,但这些根文件将位于项目的根目录中.如何在仍然跟踪Github中的上游代码的同时添加应用程序?
使用 Psycopg2,我需要测试 postgresql 表是否存在。
在类似的问题中,建议使用以下测试:
cursor.execute("select exists(select * from myDb.mytable_%s)" % complementName)
tableExists = cursor.fetchone()[0]
print(tableExists)
Run Code Online (Sandbox Code Playgroud)
如果表已经存在,并且返回 ,则此方法非常有效,但如果表不True存在,则此方法不起作用。我没有像我需要的那样返回,而是收到错误False
编程错误:关系“myDb.mytable_001”不存在
我究竟做错了什么?False 如果表不存在,我应该怎么做才能得到语句?谢谢你的帮助!
编辑
根据评论中的建议,我也尝试过:
tableExists = cursor.execute("SELECT 1 AS result FROM pg_database WHERE datname='mytable_001'")
Run Code Online (Sandbox Code Playgroud)
和
tableExists = cursor.execute("SELECT EXISTS (SELECT 1 AS result FROM pg_tables WHERE schemaname = 'mySchema' AND tablename = 'mytable_001)')")
Run Code Online (Sandbox Code Playgroud)
但None无论表是否存在,两者都只是返回 。但是,我不确定语法,也许你可以指出我可能犯的一些新手错误?谢谢!
编辑2 最后,解决方案包括上面后一个查询的组合,并按如下方式获取布尔结果:
cursor.execute("SELECT EXISTS (SELECT 1 AS result FROM pg_tables WHERE schemaname = 'mySchema' AND tablename = …Run Code Online (Sandbox Code Playgroud) 我查看了具有此IndexError的类似问题,但没有找到我的案例的解释.有人可以解释我为什么会收到错误吗?
以下代码
mySF2[0]=['000browser', '1', 'Floor', '0.92', '1.74', 'con', 'None']
insertfmt = ' '.join([
"INSERT INTO mySchema.myTable_{}_name (col1, col2, col3, col4, col5, col6)",
"VALUES ({}, {}, NULLIF({},'None')::decimal, NULLIF({},'None')::decimal, {}, NULLIF({},'None')::int)"
])
insertfmt.format(mySF2[0])
Run Code Online (Sandbox Code Playgroud)
给出了这个错误
IndexError:元组索引超出范围
但是,我会计算7个占位符(即大括号{})和7个要输入的项目.为什么错误呢?感谢您的任何观点..
我有一个包含 2 个 HTML 文件、6 个 CSS 文件和 11 个 JS 文件的小型本地 Web 应用程序。
如果所有这些文件都(正确地)复制粘贴到单个 HTML 文件中,例如将 JS 放在<script>标题中的标签中,并将 CSS 放在<style>标签中,那么网络应用程序是否仍然可以工作
?
有谁知道可以自动安全地将一组 JS、CSS 和 HTML 文件合并为一个 HTML 的工具?
在网上搜索,我只找到了可以一次合并或缩小一种类型文件的工具,但不能创建合并的 HTML 文件(例如AIOM+、HTMLcompressor。我确实找到了这个名为Inliner 的应用程序,但它似乎在 Node.js 上运行,我不熟悉,目前不使用。
简而言之,我正在寻找一种简单的独立工具,可以读取 HTML 中的所有链接文件,并通过附加这些文件的内容来重写 HTML。如果这要求太多,那么只需确认手动完成这项工作会产生一个工作文件,或者在这样做时要考虑的任何提示。谢谢!
我想通过 Django 迁移在特定的 Postgresql 架构(即“schema1”)中创建一个新表。
尽管遵循此博客或此帖子中的方法 1 ,迁移仍将表发送到默认架构“public”而不是“schema1”。
在 中settings.py,我有:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'OPTIONS': {
'options': '-c search_path=django,public'
},
'NAME': 'myDB',
'USER': 'username',
'PASSWORD': '***',
'HOST': 'my.host.address',
'PORT': '1234',
},
'schema1': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'OPTIONS': {
'options': '-c search_path=schema1,public'
},
'NAME': 'myDB',
'USER': 'username',
'PASSWORD': '***',
'HOST': 'my.host.address',
'PORT': '1234',
}
}
#Path to DBrouter to handle PG schemas /sf/answers/3570520901/
DATABASE_ROUTERS = ('djangogirls.dbrouters.MyDBRouter',)
Run Code Online (Sandbox Code Playgroud)
在 中djangogirls/dbrouters.py,我有:
from legacydbapp.models import …Run Code Online (Sandbox Code Playgroud) 我试图将 python 中对 PostgreSQL 数据库执行的查询结果保存在本地 .csv 中(使用 psycopg2)。
我可以在控制台中打印查询结果,但无法将其导出到 csv 文件。
我尝试过使用 copy_to 函数,但即使有文档我也无法弄清楚:
# Retrieve the records from the database with query
cursor.execute("SELECT col1 FROM myDB.myTable WHERE col1 > 2")
records = cursor.fetchall()
# Save to csv with copy_to
io = open('copy_to.csv', 'w')
cursor.copy_to(io, 'records', ',')
print("Copied records from query into file object using sep = ,")
io.close()
Run Code Online (Sandbox Code Playgroud)
这会引发错误“psycopg2.ProgrammingError:关系“记录”不存在”。
是否有更好的方法将查询结果存储在可以在copy_to中传递的本地表中?感谢您的任何提示!
我正在尝试将 CSV 字符串导出到 D3 Web 应用程序,但该命令to_csv坚持向数据添加尾随 0,这阻止了 D3 的正确使用。
这是一个说明问题的最小示例。
我的(简化的)数据框是:
>>> df = pd.DataFrame([['Alex',20.0000, 50.650]],columns=['Name','Age', 'Weight'])
Name Age Weight
0 Alex 20.0 50.65
Run Code Online (Sandbox Code Playgroud)
df['Age']包含 a float,如下所示:
>>> df['Age']
0 20.0
Name: Age, dtype: float64
Run Code Online (Sandbox Code Playgroud)
然后根据这个答案,我运行.astype(object)以获得我想要的格式:
>>> df=df.astype(object)
Name Age Weight
0 Alex 20 50.65
Run Code Online (Sandbox Code Playgroud)
现在,df['Age']包含一个object, 没有尾随零:
>>> df['Age']
0 20
Name: Age, dtype: object
Run Code Online (Sandbox Code Playgroud)
这就是我想用 导出的内容to_csv,但此命令会在数字后重新附加一个尾随 0,我想避免这种情况:
>>> df_csv = df.to_csv(sep=',', index = False)
>>> …Run Code Online (Sandbox Code Playgroud) 我想根据另一个键的条件(例如Gender == 'male')来总结此字典列表中所有人的年龄:
list_of_dicts= [
{"Name": "Ethan", "Gender": "male", "Age": 11},
{"Name": "Nathan", "Gender": "male", "Age": 6},
{"Name": "Sophie", "Gender": "female", "Age": 14},
{"Name": "Patrick", "Gender": "male", "Age": 11}
]
Run Code Online (Sandbox Code Playgroud)
下面的代码完成了它,但我想知道是否有更Pythonic/紧凑的方法来做到这一点?也许类似于字典列表的 SQL 查询?
total_male_age = 0
for dict in list_of_dicts:
if dict.get("Gender") == "male":
total_male_age = total_male_age + dict.get("Age")
#total_male_age = 28
Run Code Online (Sandbox Code Playgroud) 我正在尝试Select2根据数组设置所选项目的顺序。
已经提出了一个简单的解决方案,按照在下拉菜单中单击它们的顺序附加项目(请参阅本讨论中2rba 在 2017-10-26 上的回答):
$("#selectCriteria").on("select2:select", function (evt) {
var element = evt.params.data.element;
var $element = $(element);
$element.detach();
$(this).append($element);
$(this).trigger("change");
});
Run Code Online (Sandbox Code Playgroud)
我想要做的是模仿这种行为,但是当传递所选项目的数组而不是在列表中手动单击它们时。我尝试了以下命令:
displayed_items = ["b", "c", "a"];
$('#selectCriteria').val(displayed_items).trigger('change');
Run Code Online (Sandbox Code Playgroud)
但顺序没有保留。我尝试一次用一个元素循环命令,但每次新调用都会覆盖前一个元素:
$('#selectCriteria').val("b").trigger('change');
$('#selectCriteria').val("c").trigger('change');
$('#selectCriteria').val("a").trigger('change');
Run Code Online (Sandbox Code Playgroud)
我看到了两种可能的解决方案,但缺乏使它们工作的背景:
.data('preserved-order',selected))?由于它正在使用,JSX我不确定如何在我的纯 JS/jQuery 脚本中重用该脚本。我试图在 forEach 循环完成所有迭代后执行一个函数。
这个答案提供了一个有趣的解决方案,但我无法让它发挥作用。
这是我改编的代码,创建了一个简单的 asyncFunction()。
function callback () { console.log('all done'); }
function asyncFunction(item) {
console.log("in async function, item is " + item)
}
var itemsProcessed = 0;
[1, 2, 3].forEach((item, index, array) => {
asyncFunction(item, () => {
itemsProcessed++;
console.log("in callback area, itemsProcessed is " + itemsProcessed )
if(itemsProcessed === array.length) {
callback();
}
});
});
Run Code Online (Sandbox Code Playgroud)
正如在此JSfiddle 中可见,脚本正确执行了异步函数,但未能进入递增itemsProcessed且应触发该callback()函数的部分。
我对胖箭头函数不太熟悉,所以错误可能来自它们的使用。
谁能解释为什么脚本没有按预期运行?
我想知道是否可以使用.map()动态更改JS对象的添加值.
例如,静态使用.map()允许向数组的所有对象添加类似的ID.
friends = [
{
"age": 10,
"name": "Castillo"
},
{
"age": 11,
"name": "Daugherty"
},
{
"age": 12,
"name": "Travis"
}
]
// Static mapping --> adds 1 to all objects
friends_static=friends;
friends.map(elem => elem["id"] = 1);
console.log(friends_static)
Run Code Online (Sandbox Code Playgroud)
这回来了 [{age=10, name="Castillo", id=1}, {age=11, name="Daugherty", id=1}, {age=12, name="Travis", id=1}]
是否可以添加一个唯一的ID,以类似的方式为每个对象增加1?
参看 下面的说明性JSfiddle和示例代码.我知道这1++不合法,但只是表明了我想要实现的想法.
//Dynamic mapping? --> should add 1,2,3...to objects incrementally
/*
friends_dynamic=friends;
friends.map(elem => elem["id"] = 1++);
console.log(friends_dynamic)
*/
Run Code Online (Sandbox Code Playgroud)
这应该回来了 [{age=10, …