我有一个非常基本的问题django.db.models.
在这个官方的django教程中,如果你搜索单词" choice_set",你会发现变量" choice_set"没有在任何地方声明,但是神奇地说,我们可以在代码中开始使用它.
我想知道,这会django.db.models.Model奇迹般地创建*_set变量,它创建了哪些其他变量?
我希望能够在javascript中扩展函数原型(也就是说,为所有函数添加一个函数).目的是将其转换为另一种语言之间的交换格式(即ruby,它只能通过字符串[在此特定设置中]进行通信).我已经有了一个系统,所以我可以通过to_js在ruby对象上定义一个方法和to_rubyjavascript对象上的方法来传递其他类型,就像这样
Number.prototype.to_ruby = function () { return this.toString(); }
Run Code Online (Sandbox Code Playgroud)
这适用于我想要的其他所有内容,但不适用于功能.我可以通过执行以下操作让它在chrome中工作:
_empty = function() {};
_empty.__proto__.to_ruby = function () {
return 'JSFunction.new(' + this.toString().to_ruby() + ')';
};
Run Code Online (Sandbox Code Playgroud)
但这在IE中不起作用(这是系统的要求).
我知道我有一个对象,通过ID或类似方式跟踪函数,但我不能保证它们将与创建它们的同一实例一起使用.
所有其他失败我只能写一个函数来处理特殊情况(即isFunction(instance) ? fn_to_ruby(instance) : instance.to_ruby(),但是如果可能的话,我宁愿保留这个模型.