GET /api/v2/video/1380
HTTP 200 OK Vary: Accept Content-Type: text/html; charset=utf-8 Allow: GET, PUT, PATCH, HEAD, OPTIONS
{ "category": "DjangoCon 2012", "language": "English", "slug": "the-dungeon-masters-guide-to-djangos-orm", "speakers": [ "Malcolm Tredinnick" ], "tags": [ "django", "django-orm" ], "id": 1380, "state": 1, "title": "The Dungeon Master's guide to Django's ORM", "summary": "If you've ever been curious about Django's ORM implementation, you will have\nnoticed the required learning curve. Some of the code is fairly complicated.\nOther bits are worse. Here comes a 30 or 40 minute guided tour of the\nuncharted realms: how the pieces fit together, where to look for things, why\nthe current design is what it is. A portion of this is my fault; I should\nprobably explain myself.\n\n", "description": "Django's database layer is a necessarily complicated piece of code. It is a\nvery powerful API that works more or less seamlessly across multiple database\nstorage systems, smoothing over many of the inconsistencies and implementation\ndifferences that go with the territory. This is great for developers who use\nDjango.\n\nIt's a little less awesome for the maintainers of that code; working in that\nenvironment is fairly difficult. Still, we all like a challenge. Problem is:\nwhere to start? Coming to grips with the ORM code isn't easy. The code is well\nwritten and documented, but the entry points are particularly well highlighted\nand, really, the sheer mass of code is an obstacle to be overcome.\n\nThis talk will look at the various layers of the ORM, from the public\ngateways, to the semi-public doors into the implementation, to the deeper\ninternals and down to the interaction with databases. In effect, following the\njourney of a couple of adventurous young queries as they traverse the pathways\nto bring back some data, smelted into just the right format.\n\nThe goal is to provide some kind of mental map of the code. Some tips for\norienting yourself in the future and how to examine new nooks and corners\nwithout losing your mind. We obviously cannot cover everything, but let's go\nover the common paths and show how the other pieces hang off that backbone.\n\nAlong the way, we'll put some of the details into historical perspective.\nGetting inside the mind of previous adventurers might help understand why\nthings are the way they are.\n\n", "quality_notes": "", "copyright_text": "Creative Commons Attribution license (reuse allowed", "embed": "<object width=\"640\" height=\"390\"><param name=\"movie\" value=\"http://youtube.com/v/bgV39DlmZ2U?version=3&amp;hl=en_US\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://youtube.com/v/bgV39DlmZ2U?version=3&amp;hl=en_US\" type=\"application/x-shockwave-flash\" width=\"640\" height=\"390\" allowscriptaccess=\"always\" allowfullscreen=\"true\"></embed></object>", "thumbnail_url": "http://i.ytimg.com/vi/bgV39DlmZ2U/hqdefault.jpg", "duration": null, "video_ogv_length": null, "video_ogv_url": null, "video_ogv_download_only": false, "video_mp4_length": null, "video_mp4_url": null, "video_mp4_download_only": false, "video_webm_length": null, "video_webm_url": null, "video_webm_download_only": false, "video_flv_length": null, "video_flv_url": null, "video_flv_download_only": false, "source_url": "http://www.youtube.com/watch?v=bgV39DlmZ2U", "whiteboard": "", "recorded": "2012-09-05", "added": "2012-10-08T17:39:47", "updated": "2014-04-08T20:28:26.991" }