我想构建GQL查询以使用其数字ID获取对象.我在App管理控制台的Datastore查看器中这样做,所以我不能使用Model.get_by_id(numeric_id).就像是
SELECT * FROM Model WHERE id = <numeric_id>
Run Code Online (Sandbox Code Playgroud)
也行不通.
我有一组(X)点(不是很大,比如1-20分)和第二组(Y),更大的点数.我需要从Y中选择一个点,从X 到X的所有点的距离总和是最小的.
我想出了一个想法,我将X视为多边形的顶点并找到该多边形的质心,然后我将从Y最接近质心的位置选择一个点.但我不确定质心是否最小化了它到多边形顶点的距离之和,所以我不确定这是否是一个好方法?有没有解决这个问题的算法?
点由地理坐标定义.
我对GAE中mapreduce支持的当前状态感到困惑.根据文档http://code.google.com/p/appengine-mapreduce/还不支持reduce阶段,但在I/O 2011会话描述中(http://www.youtube.com)/watch?v = EIxelKcyCC0)它写的"现在可以在App Engine上运行完整的Map Reduce作业".我想知道我是否可以在此任务中使用mapreduce:
我想做的事:
我有车型的车型:
class Car(db.Model):
color = db.StringProperty()
Run Code Online (Sandbox Code Playgroud)
我想运行mapreduce进程(不时地,cron定义),它可以计算每种颜色中有多少汽车,并将此结果存储在数据存储区中.看起来像一个非常适合mapreduce的工作(但是如果我错了更正),阶段"map"将为每个Car实体产生对(,1),而阶段"reduce"应该通过color_name合并这些数据给出我预期的结果.我想得到的最终结果是存储在数据存储区中的计算数据的实体,类似于:
class CarsByColor(db.Model):
color_name = db.StringProperty()
cars_num = db.IntegerProperty()
Run Code Online (Sandbox Code Playgroud)
问题: 我不知道如何在appengine中实现这个...视频显示了定义map和reduce函数的示例,但它们似乎是与数据存储无关的非常一般的示例.我发现的所有其他示例都使用一个函数来处理来自DatastoreInputReader的数据,但它们似乎只是"map"阶段,没有关于如何执行"reduce"的示例(以及如何将结果存储在数据存储).
我正在通过Google App Engine使用Django 1.1 use_library.这里没有使用Django GAE助手,Django非rel或类似工具.Django处理URL路由,表单验证等,但我使用的是纯App Engine模型.
在我的一个Django表单中有一个FileField,它有时会调用django.core.files.uploadedfile.TemporaryUploadedFile.然后该类使用tempfile.NamedTemporaryFile,这会导致App Engine引发:
File "/base/python_runtime/python_dist/lib/python2.5/tempfile.py", line 45, in PlaceHolder
raise NotImplementedError("Only tempfile.TemporaryFile is available for use")
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我从Google App Engine Helper for Django(不使用)中获取了uploadfile模块,NamedTemporaryFile将其保存为gae_uploadedfile.py应用程序目录,并在我的_djangomain.py_文件中添加:
from google.appengine.dist import use_library
use_library('django', '1.1')
(...)
import gae_uploadedfile
django.core.files.uploadedfile = gae_uploadedfile
Run Code Online (Sandbox Code Playgroud)
djangomain.py是一个文件,我重定向所有网址 - 在app.yaml我有:
- url: /.*
script: djangomain.py
Run Code Online (Sandbox Code Playgroud)
但它没有帮助,我仍然得到这个例外.我做错了什么,是否有其他解决方案可以避免在使用FileField时出现此错误django.forms?
我有一个包含超链接公式的列,例如:
=HYPERLINK("http://example.com", "Link")
Run Code Online (Sandbox Code Playgroud)
我想获得其他列,其中仅第一列中的url(作为文本)会出现,也就是说,在此示例中:
http://example.com
Run Code Online (Sandbox Code Playgroud)
是否有允许从HYPERLINK提取URL的功能?我也在考虑从第一列中获取公式文本,并在最后一列中使用SPLIT / SUBSTITUTE进行剪切,但是我不确定是否可以将一个域代码插入另一个域。
根据文档:http://code.google.com/appengine/docs/python/datastore/datamodeling.html#References 自动创建的反向引用对象是一个Query对象,因此可能会对其进行迭代并进行提取调用.
但是:我有一个型号:
class User(db.Model):
name = db.StringProperty()
...
Run Code Online (Sandbox Code Playgroud)
和第二个模型:
class Thing(db.Model):
owner = db.ReferenceProperty(User)
...
Run Code Online (Sandbox Code Playgroud)
当我尝试访问反向引用时:
for thing in user.thing_set:
...
Run Code Online (Sandbox Code Playgroud)
要么:
user.thing_set.fetch(100)
Run Code Online (Sandbox Code Playgroud)
我得到这样的例外:
<type 'exceptions.TypeError'>: '_ReverseReferenceProperty' object is not iterable
Run Code Online (Sandbox Code Playgroud)
或者像这样:
<type 'exceptions.AttributeError'>: '_ReverseReferenceProperty' object has no attribute 'fetch'
Run Code Online (Sandbox Code Playgroud)
我做错了什么或者有什么改变吗?我很确定以前它像Query一样工作.文档页面上甚至有一个示例,显示与我的相同用法:
for obj in obj1.secondmodel_set:
# ...
Run Code Online (Sandbox Code Playgroud)
另外,没有反向引用的查询工作正常:
things = Thing.all().filter('owner =', user)
Run Code Online (Sandbox Code Playgroud) 我在mapreduce.yaml中定义了mapreduce作业:
mapreduce:
- name: JobName
mapper:
input_reader: google.appengine.ext.mapreduce.input_readers.DatastoreInputReader
handler: handler_name
params:
- name: entity_kind
default: KindName
Run Code Online (Sandbox Code Playgroud)
如何从cron开始呢?是否有一些可以运行它的网址?
是否有可能在连接到pre_delete信号的回调中获得已登录的django用户(调用模型的删除方法)?
我正在尝试使用django-haystack进行地理空间查询,如下所述:http://django-haystack.readthedocs.org/en/latest/spatial.html我使用elasticsearch作为后端.我根据文档创建了search_indexes,配置了django,当我第一次尝试使用rebuild_index管理命令时,我看到了一个错误:
python manage.py rebuild_index --settings=myproject.settings.local
WARNING: This will irreparably remove EVERYTHING from your search index in connection 'default'.
Your choices after this are to restore from backups or rebuild via the `rebuild_index` command.
Are you sure you wish to continue? [y/N] y
Removing all documents from your index because you said so.
All documents removed.
Indexing 1 Venues
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
...
...
File "/f/venvs/myproject/local/lib/python2.7/site-packages/haystack/backends/elasticsearch_backend.py", line 161, …Run Code Online (Sandbox Code Playgroud)