我正在使用Django的手工制作(Postgres)数据库.使用"inspectdb",我能够自动为它创建一个模型.问题是一些表有多个主键(对于多对多关系),并且无法通过Django访问它们.
访问这些表的最佳方法是什么?
我正在跟踪模型上的用户状态.对于模型"课程",我的状态为"完成","学习","已查看".在模型列表的视图中,我想添加用户状态.做这个的最好方式是什么?
一个想法:将请求添加到模型方法可以解决问题.那可能吗?
编辑:我的意思是模板代码:{{lesson.get_status}},带有get_status(self,request).可能吗?它还不起作用.
如何在geodjango中获取MultiPolygon对象的边界框?在API http://geodjango.org/docs/geos.html中找不到任何内容......
我正在尝试按照Django testing docs 中的信息测试在 PostGIS 数据库上运行的 Django 应用程序。
通常我通过复制模板来创建一个新数据库:
(作为用户 postgres)
createdb -T template_postgis -O lizard test_geodjango2
Run Code Online (Sandbox Code Playgroud)
当我运行时./manage.py test,我收到以下消息:
正在创建测试数据库...创建测试数据库时出错:创建数据库的权限被拒绝
如果您想尝试删除测试数据库“test_geodjango2”,请键入“yes”,或者键入“no”以>取消:
让系统创建数据库的最佳方法是什么?
我试图将无穷大放在 FloatField 中,但这似乎不起作用。我该如何解决这个问题?
f = DjangoModel(float_value=float('inf')) #ok
f.save() #crashes
Run Code Online (Sandbox Code Playgroud)
结果是:
Traceback (most recent call last):
...
ProgrammingError: column "inf" does not exist
LINE 1: ... "float_value") VALUES (inf)
Run Code Online (Sandbox Code Playgroud)
我正在使用 Django 1.0.2 和 PostgreSQL 8.3
我正在寻找一种快速方法将新调色板应用于现有的8位.png图像.我怎样才能做到这一点?保存图像时,.png是否重新编码?(自己回答:看来是这样)
我尝试过(编辑过):
import Image, ImagePalette
output = StringIO.StringIO()
palette = (.....) #long palette of 768 items
im = Image.open('test_palette.png') #8 bit image
im.putpalette(palette)
im.save(output, format='PNG')
Run Code Online (Sandbox Code Playgroud)
通过我的testimage,保存功能大约需要65毫安.我的想法:没有解码和编码,它可以更快?
在Django,我怎样才能看到当前访客的数量?或者我如何确定活动会话的数量?
这是一个好方法吗?
使用django.contrib.sessions.models.Session,将到期时间设置得很短.每当有人在网站上做某事时,更新到期时间.然后计算未过期的会话数.
使用Python 2.6.4,windows
使用以下脚本,我想测试某个xmlrpc服务器.我调用一个不存在的函数,希望有一个错误的回溯.相反,该功能不会返回.可能是什么原因?
import xmlrpclib
s = xmlrpclib.Server("http://127.0.0.1:80", verbose=True)
s.functioncall()
Run Code Online (Sandbox Code Playgroud)
输出是:
send: 'POST /RPC2 HTTP/1.0\r\nHost: 127.0.0.1:80\r\nUser-Agent: xmlrpclib.py/1.0
.1 (by www.pythonware.com)\r\nContent-Type: text/xml\r\nContent-Length: 106\r\n\
r\n'
send: "<?xml version='1.0'?>\n<methodCall>\n<methodName>functioncall</methodName
>\n<params>\n</params>\n</methodCall>\n"
reply: 'HTTP/1.1 200 OK\r\n'
header: Content-Type: text/xml
header: Cache-Control: no-cache
header: Content-Length: 376
header: Date: Tue, 30 Mar 2010 13:27:21 GMT
body: '<?xml version="1.0"?>\r\n<methodResponse>\r\n<fault>\r\n<value>\r\n<struc
t>\r\n<member>\r\n<name>faultCode</name>\r\n<value><i4>1</i4></value>\r\n</membe
r>\r\n<member>\r\n<name>faultString</name>\r\n<value><string>PVSS00ctrl (2), 2
010.03.30 15:27:21.395, CTRL, SEVERE, 72, Function not defined, functioncall
, , \n</string></value>\r\n</member>\r\n</struct>\r\n</value>\r\n</fault>\r\n</m
ethodResponse>\r\n'
Run Code Online (Sandbox Code Playgroud)
(这里程序挂起,直到我杀死服务器才返回)
编辑:服务器使用自己的xmlrpc库以c ++编写
编辑:发现一个看起来像问题http://bugs.python.org/issue1727418的问题
你会期待什么:
设置.py
DATABASES = {
'default': {
'NAME': 'db_name',
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'USER': 'user',
'PASSWORD': 'password',
'HOST': 'host',
'PORT': '5432',
'DEFAULT_TABLESPACE': 'tablespace-name',
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用 DEFAULT_TABLESPACE 时,我希望使用此默认表空间授予访问权限。但我在那里使用什么并不重要。此外,如果我在模型元类中明确使用 db_tablespace,就我所知,它不会做任何事情。
我也尝试过不同的用户,但即使用户 postgres 也不起作用。如果我定义 db_table = "tablespace.tablename",它也不起作用。
将起作用的 SQL:
select count(*) from schemaname.tablename
Run Code Online (Sandbox Code Playgroud)
我备份了数据库并在本地恢复,没有创建表空间。它导入良好并忽略表空间。然后它就起作用了。
如何使用带有表空间的 postgres 配置 Django?还是模式名??其实我也不太懂,希望大家帮帮我。
另见:https : //docs.djangoproject.com/en/dev/topics/db/tablespaces/
使用 Django 1.3.1、postgresql 8.4、psycopg2
更新:
使用表空间时似乎没有选择“默认模式”。我尝试了一些测试,这里是使用 ./manage.py dbshell 的结果:
这确实适用于我没有表空间的数据库,但不适用于具有表空间的数据库:
select * from parameter;
Run Code Online (Sandbox Code Playgroud)
这对两个数据库都有效:
select * from tablespace.parameter;
Run Code Online (Sandbox Code Playgroud)
不幸的是,数据库设置中的选项“DATABASE_SCHEMA”不起作用,模型元对象中的“db_schema”也不起作用。所以问题现在有点清楚了。有没有人有解决方案?