我想知道如何使用Model.get_by_key_名称()与Model.get_按_id()
例如,假设我返回一些JSON,它将用于显示一个记录表,对于每个记录,都有一个删除该记录的按钮。假设我有模型'Foo'和模型实例'Foo'。在
我相信我可以使用以下任一方法将每个按钮与相应的记录关联起来:
str(foo.key()) #suppose it eval's to "axhYm92ZZXJvY2tyDgsSCENhnb3J5GBQM"
或者
^{pr2}$这些值中的一个将进入HTML表单,用户可以单击按钮,请求删除具有此key/id的记录
请求将导致:
Foo.get_by_key_name("axhYm92ZZXJvY2tyDgsSCENhnb3J5GBQM").delete()
或者
Foo.get_by_id(57).delete()
现在,作为一个犹豫不决的多动症程序员,我需要知道。。。哪条是“正确”的道路?它们似乎都能起作用,但有没有什么情况能使其中一种优于另一种呢?使用“键”方式与“id”方式相比有什么优势吗?在
你得到的是一个密钥字符串,而不是一个密钥名称。如果你想从一个对象的键串中得到一个对象。然后使用
Model.get(keystring)
。Key_name是您分配给一个应该是唯一的对象的名称。如果你认为你可以使用任何唯一的属性,你可以把它作为一个键名,或者使用默认的生成的id。使用一个键名的唯一方法是get_or_insert()
,如果有一个实体存在,它会返回一个实体,否则会创建一个实体并返回它。在您将密钥名称与stringized密钥混淆。他们是不同的。键的名称是在构造时通过reserved key_name属性给实体的名称。如果没有,系统将生成一个id。一个实体键可以有一个名称或一个id,但不能两者都有。在
如果您有意将一个键串接起来,您可以通过将它传回键构造器来重新构造它。在
假设你真正的意思是姓名和身份证,这是一个更方便的问题。任何性能差异都将是微小的。在
相关问题 更多 >
编程相关推荐