我希望这很容易,但我没有找到如何做到这一点的简单解释.我有一个像这样的标准HTML表单:
<form name="new_post" action="process_form.json" method=POST>
<label>Title:</label>
<input id="post_title" name="post.title" type="text" /><br/>
<label>Name:</label><br/>
<input id="post_name" name="post.name" type="text" /><br/>
<label>Content:</label><br/>
<textarea cols="40" id="post_content" name="post.content" rows="20"></textarea>
<input id="new_post_submit" type="submit" value="Create" />
</form>
Run Code Online (Sandbox Code Playgroud)
我想让javascript(使用jQuery)将表单提交给表单的action(process_form.json),并从服务器接收JSON响应.然后我会有一个javascript函数运行以响应JSON响应,比如
function form_success(json) {
alert('Your form submission worked');
// process json response
}
Run Code Online (Sandbox Code Playgroud)
完成后如何连接表单提交按钮以调用我的form_success方法?它也应该覆盖浏览器自己的导航,因为我不想离开页面.或者我应该从表单中移出按钮来执行此操作?
我正在南方编写数据迁移来修复我在早期代码中搞砸的一些非规范化数据.找出错误字段的正确值的方法是在django模型类上调用静态方法.代码如下所示:
class Account(models.Model):
name = models.CharField()
@staticmethod
def lookup_by_name(name):
# There's actually more to it than this
return Account.objects.get(name=name)
class Record(models.Model):
account_name = models.CharField()
acct = models.ForeignKey('Account')
Run Code Online (Sandbox Code Playgroud)
...
class Migration(DataMigration):
def forwards(self, orm):
# Fixing Records with the wrong FK to Account
for record in orm.Record.objects.all():
record.acct = orm.Account.lookup_by_name(record.account_name)
record.save()
Run Code Online (Sandbox Code Playgroud)
但这失败了
AttributeError: type object 'Account' has no attribute 'lookup_by_name'
我猜南方只是不支持@staticmethod
模型类的?
尝试直接导入帐户失败,除非我也直接导入Record并完全忽略ORM对象.这是一个安全的选择,因为它是一个数据迁移,架构没有改变?或者我应该手动运行此修复,而不是在南迁移的情况下.
在mongodb中创建索引时,可以指定background: true
标志,这会导致索引创建为非阻塞.这在生产中非常棒,因为您不希望在创建一个之前显然不需要的索引时锁定整个数据库(因为您没有它).
阅读文档,似乎这个标志只决定了索引是如何创建的,一旦构建完毕,索引的行为就像普通索引一样.这就是我想要的 - 我不希望索引与文档不同步,因为它在后台更新,尽管我可以想象一个数据库可以做到这一点.
我在这里问,因为该getIndexes
命令显示索引background
在创建后仍然标记为.这只是提醒它是如何创建的吗?或者background
索引在创建后表现不同?也许复制有些微妙?
我正在处理的iPhone应用程序似乎在操作过程中手机进入睡眠状态时出现错误.有没有办法模拟手机在iOS模拟器中进入睡眠状态?
具体来说,我指的是用户按下耳机旁边的手机顶部的按钮,立即使屏幕空白.
注意: OP询问" 关闭 "手机,这不是按下顶部按钮时发生的情况.离开这里,因为获得解决方案的一部分是弄清楚要问什么问题.
我有一个Django应用程序.我有包含测试数据的.json fixture文件,单元测试使用数据来确认应用程序是否正常工作.我还使用South来迁移我的数据库.
做了几个数据库迁移后,我的灯具已经过时了,因为数据库已迁移,添加一个新的数据库列,例如,与夹具数据不具有该列,因为它在数据库中更改前被抓获.
在迁移数据库时,移动我的灯具的最佳方法是什么?
我知道可以通过编程方式检测iPhone上是否安装了应用程序.我想知道是否有可能检测到安装了其他应用程序的版本?
我的应用程序依赖于Facebook本机客户端,但如果手机安装了较旧版本的Facebook应用程序,则表现非常糟糕.所以我希望能够发现并警告用户.
- 更新 -
在评论中暗示如果相关应用程序的相应版本不存在,我可以阻止用户首先安装我的应用程序.那也是一个很好的解决方案.如果您知道如何指定对其他应用程序版本号的依赖关系,请解释一下.
对于包含Android和iOS版本的phonegap项目的单个源存储库,什么是良好的目录结构?我没关系使用sym-links,因为我不希望在PC上发生任何开发.(但是,如果有一个干净的方法可以不用,我会全都耳朵,因为PC上的git和符号链接是一场噩梦.)我试过这个:
www/
index.html
js/ *.js
xpjs-ios/ *.js
xpjs-android/ *.js
css/ *.css
html/ *.html (all other files)
android/
(lots of java and config files)
android/assets/www/index.html -> www/index.html
js -> www/js
xpjs -> www/xpjs-android
html -> www/html
css -> www/css
ios/
(xcode config and such)
ios/www/index.html -> www/index.html
js -> www/js
xpjs -> www/xpjs-ios
html -> www/html
css -> www/css
Run Code Online (Sandbox Code Playgroud)
然后我将xcode指向ios/www目录,并在android/www目录下进行eclipse.对于平台特定的JavaScript中,HTML文件引用xpjs/phonegap.js
,并xpjs/my-quirks.js
和获得任何这些文件的Android或iOS版本.
这似乎应该可以工作,但xcode4似乎没有处理符号链接.如果我在xcode编辑器中打开其中一个源文件,它读起来很好,但是当我尝试保存它时就会说出类似的东西
The document "index.html" could not be saved. It does not exist.
Run Code Online (Sandbox Code Playgroud)
当我尝试运行它时,应用程序失败了
ERROR: Start page 'www/index.html' …
Run Code Online (Sandbox Code Playgroud) 当我阅读那些很清楚并且由显然非常擅长的人编写的javascript代码时,我经常会看到这种模式
var x = some.initialization.method(),
y = something.els(),
z;
Run Code Online (Sandbox Code Playgroud)
这比写作有什么好处
var x = some.initialization.method();
var y = something.els();
var z;
Run Code Online (Sandbox Code Playgroud)
第二种格式更容易维护,因为每条线本身都存在.因此,您可以擦除一行或添加一行,而不必四处查看它是否是要初始化的第一个或最后一个变量.这也意味着源控制差异/合并将更好地工作.鉴于这些缺点,我猜测第一种格式有一些优势 - 但它是什么?当然它们执行相同,因为它与解析器相同.
我的一个django型号有一个TextField
我经常不需要使用的大型.有没有办法告诉django这个领域"懒惰"?即除非我明确要求,否则不要费心从数据库中提取它.TextField
每次我引用这些对象时,我都会浪费大量内存和带宽将其拉入python.
另一种方法是为该字段的内容创建一个新表,但如果可以,我宁愿避免这种复杂性.
Facebook的实时更新文档现在说您可以获取页面的订阅源:
您可以按订阅用户Feed的相同方式订阅页面的订阅源 - 订阅主题应为"用户",订阅字段应为"Feed"
我对此的理解是,我需要发布图API以便订阅:
curl -d \
"object=user&fields=feed&callback_url=$CALLBACKURL&verify_token=$SECRET" \
"https://graph.facebook.com/$PAGEID/subscriptions?access_token=$OAUTHTOKEN"
Run Code Online (Sandbox Code Playgroud)
(这是一个bash脚本.)$CALLBACKURL
按照示例代码正确设置.(至少我认为这是正确的 - 我可以成功添加订阅.)这$OAUTHTOKEN
是我的Facebook应用程序.
这$PAGEID
是我想要获得实时更新的页面的facebook对象ID.
当我这样做时,呼叫似乎工作 - 没有错误消息.我的回调被调用了.但是当我在页面的Feed上发生某些事情时,我当然不会得到通知.
那么缺少什么?页面是否需要安装我正在使用其oauth令牌的应用程序?或者我是否需要通过以页面身份登录来获取页面本身的oauth令牌?