Moh*_*han 6 django django-models natural-key python-2.7
据我所知,模型管理器的get_by_natural_key用于反序列化,而natural_key用于序列化.这是真的 ?如果不是,有什么区别?
而且,我们是否需要始终提供 - 自然 - 外国和 - 自然 - 主键?有没有办法强制通过自然键序列化/反序列化?
正如你所说,Django 用于get_by_natural_key反序列化和natural_key序列化。
正如文档中所述,您不需要同时定义它们。您可以安全地仅使用其中之一。
如果您需要在代码中使用自然键序列化模型,则必须使用serializers.serialize()and use_natural_foreign_keys=True/or use_natural_primary_keys=True。
如果您需要使用自然键序列化/反序列化某些对象,那么admin.py dumpdata您必须传递--natural-foreign和/或--natural-primary如果您不这样做,它们将以默认(非自然)行为进行序列化/反序列化。
要“强制”使用自然键,dumpdata您可以创建 shell 别名。
如果您需要更高级的模型序列化/反序列化,我建议您使用Django REST Framework 序列化器等外部组件或编写自己的组件。
| 归档时间: |
|
| 查看次数: |
3497 次 |
| 最近记录: |