希望这应该是一个相当简单的问题,我只是不太了解Python和Django来回答它.
我在Django中有一个原始的SQL查询,它有六个不同的参数,前两个(centreLat和centreLng)都重复:
query = "SELECT units, (SQRT(((lat-%s)*(lat-%s)) + ((lng-%s)*(lng-%s)))) AS distance FROM places WHERE lat<%s AND lat>%s AND lon<%s AND lon>%s ORDER BY distance;"
params = [centreLat,centreLng,swLat,neLat,swLng,neLng]
places = Place.objects.raw(query, params)
Run Code Online (Sandbox Code Playgroud)
如何构造params对象和query字符串,以便他们知道要重复哪些参数以及在哪里?
更新:以为我已经解决了,但我没有...请看下面.
我正在Mac OSX上安装GeoDjango.我遵循了Mac安装说明,一切顺利,我现在正在为PostGIS创建一个空间数据库模板.
但是,当我尝试加载PostGIS SQL例程时,我得到ERROR: could not access file "$libdir/postgis-1.5": No such file or directory:
postgres$ psql -d template_postgis -f $POSTGIS_SQL_PATH/postgis.sql
psql:/usr/local/pgsql/share/contrib/postgis-1.5/postgis.sql:59: ERROR: could not access file "$libdir/postgis-1.5": No such file or directory
<snip>
psql:/usr/local/pgsql/share/contrib/postgis-1.5/postgis.sql:7785: ERROR: type "geometry" does not exist
Run Code Online (Sandbox Code Playgroud)
出了什么问题,我该如何解决?
我从postgis IRC找到了这些说明,但我认为我正在运行正确版本的pg_config等:
postgres$ which pg_config
/usr/local/pgsql/bin//pg_config
postgres$ which psql
/usr/local/pgsql/bin//psql
postgres$ pg_config --pkglibdir
/usr/local/pgsql/lib
Run Code Online (Sandbox Code Playgroud)
我从KyngChaos安装了postgres及其PostGIS扩展.如果我查看/usr/local/pgsql/lib,那里有一个文件postgis-1.5.so,所以我不明白为什么它没有找到.
我在Python脚本中运行此命令:
try:
print sql_string
cursor.execute(sql_string)
except:
print sys.exc_info()
Run Code Online (Sandbox Code Playgroud)
得到:
(<class 'psycopg2.InternalError'>, InternalError('current transaction is aborted, commands ignored until end of transaction block\n',), <traceback object at 0x1010054d0>)
Run Code Online (Sandbox Code Playgroud)
但是,如果我sql_string从psql命令行尝试,它可以正常工作.我知道脚本连接到数据库没关系,因为我可以运行其他命令.
如何让Python为我提供有关此命令在脚本中失败的原因的更多有用信息?
我正在学习Django并尝试通过桥接表查询外键.如果这是重复的道歉,我无法通过搜索找到答案.我的模型定义如下
class Place(models.Model):
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=100)
class PlaceRef(models.Model):
place = models.ForeignKey(Place) # many-to-one field
entry = models.ForeignKey(Entry) # many-to-one field
class Entry(models.Model):
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=10)
Run Code Online (Sandbox Code Playgroud)
如果我想检索与特定地点相关的所有条目,我该怎么办?
place = get_object_or_404(Place, id=id)
placerefs = PlaceRef.objects.filter(place=place)
entries = Entry.objects.filter(id.....)
Run Code Online (Sandbox Code Playgroud)
另外,如果我有更明智的方式来定义(或摆脱)Django中的PlaceRef,请随时提出替代方案.
感谢您帮助初学者!
我正在使用Mercurial而且我是一个新手.我只是犯了一个改变我的回购成功,然后跑去hg pull和hg update成功-没有合并,没有冲突出现了.
然后我试图推到远程仓库,并得到了可怕的: abort: push creates new remote heads!
hg glog 显示以下内容:
@ changeset: 576:c4c58970f141
| tag: tip
| user: me
| parent: 566:70e287df5439
|
| o changeset: 575:7ae70ddd2b6e
| | branch: mongo
| |
| o changeset: 574:904da90475ef
| | branch: mongo
| |
| o changeset: 567:cad7a006965b
|/ branch: mongo
|
o changeset: 566:70e287df5439
| user: me
|
Run Code Online (Sandbox Code Playgroud)
看起来有人在repo中创建了一个新的分支,这很好:我只是想将我的更改推送到默认分支,但我不知道如何.
如何推动变更集576?我是否需要指定它是分支默认值?
我给自己定background-image的一对夫妇的span元素,但它们没有显示出来,我想是因为我height和width设置都被忽略.
HTML源代码:
<div class="textwidget">
<a href="#" title="Start here"><span id="starthere" class="sidebar-poster"></span></a>
<a href="#" title="Primary documents"><span id="#primarydocs" class="sidebar-poster"></span></a>
<a href="#" title="Donate"><span id="donate" class="sidebar-poster"></span></a>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
span.sidebar-poster {
margin-bottom: 10px;
background-repeat: no-repeat;
width: 160px;
}
span#starthere {
background-image: url(/betatesting/wp-content/themes/dynamik/css/images/brunelwantsyou180.jpg);
height: 285px;
}
span#starthere:hover {
background-image: url(/betatesting/wp-content/themes/dynamik/css/images/brunelwantsyou_hover.jpg);
}
span#primarydocs {
background-image: url(/betatesting/wp-content/themes/dynamik/css/images/brunelwantsyou180.jpg);
height: 285px;
}
span#primarydocs:hover {
background-image: url(/betatesting/wp-content/themes/dynamik/css/images/brunelwantsyou_hover.jpg);
}
span#donate {
background-image: url(/betatesting/wp-content/themes/dynamik/css/images/donatebutton.jpg);
height: 285px;
}
span#donate:hover {
background-image: url(/betatesting/wp-content/themes/dynamik/css/images/donateposter_hover.jpg);
}
Run Code Online (Sandbox Code Playgroud)
没有任何背景图像实际可见.
在Chrome开发者工具中,在"计算样式"下,这两个跨度似乎确实具有背景图像.如果我复制并粘贴此图像的URL,我会看到图像.但实际上并没有渲染.
[更新 - …
我正在使用Django管理员StackedInline,如下所示:
class BookInline(admin.StackedInline):
model = Book.subject.through
verbose_name = 'Book'
verbose_name_plural = 'Books with this subject'
class SubjectAdmin(admin.ModelAdmin):
inlines = [
BookInline,
]
Run Code Online (Sandbox Code Playgroud)
一切正常,但标题非常难看:
Books With This Subject
Book: Book_subject object
Run Code Online (Sandbox Code Playgroud)
任何人都知道如何摆脱或改变这Book_subject object部分?
谢谢!
我试图在Django模板中迭代模型值的字典 - 我想列出每个模型字段的verbose_name及其值.
这是我在models.py中的内容:
class Manors(models.Model):
structidx = models.IntegerField(primary_key=True, verbose_name="ID")
county = models.CharField(max_length=5, null=True, blank=True, verbose_name="County")
def get_fields(self):
d = {}
#d["database"] = "pubs"
#d["uid"] = "sa"
for field in Manors._meta.fields:
d[field.verbose_name(self)] = field.value_to_string(self)
return d
Run Code Online (Sandbox Code Playgroud)
在views.py中:
manor_stats = Manors.objects.get(structidx__exact=id)
return render_to_response('template.html', { 'place' : place, 'manor_stats' : manor_stats }, context_instance = RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
在模板中:
<h4>Statistics</h4>
<ul>
{% for key, value in manor_stats.get_fields %}
<li> {{ key }}: {{ value }} </li>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)
但我只是得到一个奇怪的,扭曲的列表,如:
u: i
d: a …Run Code Online (Sandbox Code Playgroud) 我是SQLAlchemy的新手.我目前有:
ev = model.EnumerationValue(key=key_level_2, code=level_2)
ev.keyvalues[key_parent] = level_1
model.Session.add(ev)
Run Code Online (Sandbox Code Playgroud)
如何更改此选项,以便仅在尚未存在的情况下添加该对象?这样会很好......
model.Session.create_if_does_not_exist(ev)
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有一个android.net.URI对象(在MediaStore.ACTION_VIDEO_CAPTURE之后由onActivityResult返回的那种):它看起来像content:// media/video/media/33.
我想将它转换为File对象,只有一个File对象 - 我需要将它传递给另一个需要File的构造函数.
如何将这样的URI转换为File对象?如果我试试
File newFile = new File(myURI);
Run Code Online (Sandbox Code Playgroud)
我在Eclipse中收到错误,建议我将URI转换为String.在构造函数中提供URI.getPath()也没有帮助.
这涉及' 如何将android.net.uri对象转换为java.net.uri对象?'问题,遗憾的是似乎没有好的答案,但我想要一个File对象,而不是java uri.
我不介意我是否必须将它写入字节流并再次返回 - 无论什么是最好的方法.
如果我在交叉发布我自己的问题,请道歉,但我想我可能需要让事情更清楚一些.
django ×4
python ×3
postgresql ×2
android ×1
css ×1
django-admin ×1
geocoding ×1
geodjango ×1
html ×1
mercurial ×1
postgis ×1
sqlalchemy ×1