Merken

I never Meta model I didn't like: The Django 1.8 Meta Interface

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
1 of the most of the time and the end of the and the and mn it good afternoon Cleveland and as I said that my name is also the the my day job is as CTR and cofounder of traits cloud words ready suffers a service for tradespeople plumbers electricians carpenters below that uh the reason I'm here
today is gender on being coating member for the last 10 years on President datasets for since 2011 but certain the technical review board for the 1 . 7 1 1 releases animals on the security the that the roles
of ashamed over the years is as a main tool in the Google Summer of Code for those who are familiar with the program that builds approach is that we'd internship for college students in open source projects apply to have students the students in applied to the uh been taught in particular project will very commonly picks up the tab applying them starting in exchange for 12 weeks of contribution to another source project the to catch it needs to be open source and it needs to be done as solo work by an expert from the project and this year this this year that he was 1st used in about 6 I haven't yet been actively mentoring foreign students but over the years the summer code resulted in a number of very large features have been added to gender effective government database support em aggregation API systems check framework among . 7 and 1 . 8 a formalized metamodel I so that
is a metamodel and what is metaprogramming will In short metaprogramming is when you're writing code that can reason about the code that is running it's especially useful when you're writing generic frameworks because instead of encoding specific situations you encoding how to respond to a generic situation an easy way of example and the programming can be found inside class itself let's say when is
graphics and so you need i . class to represent uh the point on a graphics and the extended campus within about the 2 and 3 D representation so we can use some subclassing had nothing to challenging here we got an initialization methods we take some arguments we instantiate some objects we went to the output those points in some ways the rights output methods see right Apple . for two-dimensional point not 4 point for three-dimensional point nothing to John demand and when you run them you get exactly what you'd expect but what you really want is rather than having a separate method for each type of point you have a single method that will take an idea . type and output appropriately and that's easy enough to run as well if coming from a language like C + + the doesn't have a programming tools or job which has been a programming tools it does encourage you use them as much as you might be inclined to do something like this you do a class check again without 1 method grapple point I wouldn't print the things we know are commonly it's in the y coordinate and is this point that we've been given is an instance of a 3 D point then put the z coordinate as well I cannot because work there's nothing wrong with that but under a Pythonic approach is to use metaprogramming what you do is you can relationship check for class it if you check for class but the only checking 3 points that will work but if you check for properties of the instance you can adapt to any type as long as it has the right attributes and so Python provides a tool provides a a built-in method called has truck that is what checking is rather than saying is the subject of his class you say if this object has the entropy z then printed the but what is even more attributes with a start meddling doctor who now so we need was by include time into our XYZ coordinate so that means you do another has right well no because again we can use programming via every Python object has a special attribute 9 done the that contains all the attributes of that instance so 2nd line answers people that's where the attributes of that instance we sort of dollars and we iterate over them so each of them we're going to print out that attribution the name of the attribute and gets the value of that category of the object code the now the thing that's interesting is that that definition will work with any object not just points you can put any Python object at that method and it was known as the the active you can be output as a string that will successfully output a representation of that object now that is admittedly going much contrived example you probably wouldn't actually that way you have to use the the the recommend that little string method on the actual cost self but it's enough to demonstrate the point by leveraging the programming you can do some very powerful things with very little covered and python at least it's fairly easy to understand card the I can say that this is the primary mean when we moved to gender well it means Bernoulli do some sense of thing we distribute Python objects but do it with that of ice melts 1 obvious place this is really useful is manifolds I have a gender model it has a bunch of fields I wanted to display of form to it is an instance of that model now I could define a for instance for each 1 models and then add the fields I want it follows on models or I can use that a programming using programming I get you right over all the fields on the marble and for each of those fields and the input that's appropriate for that for the with that particular hopeful engenders admin Jenkins that allows you to just register amoral and you get an entire and device for that model automatically how's that possible because Genghis admin users better programming to introspect the models of follow-up agenda project and they generate for those objects now of course you can get I'd much better and much more customized interfaces we spend the whole budget on configuring configuring you I've been views but as a 1st class administration device the minute programming approach that she had some very big runs very very easily the the gender that men are also required to register with the melody water display any administrator you couldn't avoid this step if you wanted to agendas at cash is a form of the parameter which allows you to introspect the applications exist in a project and in the members of my that so if you were so inclined you would be possible to write a completely zero-configuration admin application agenda now the only other men radio I was 1 of the better features for 1 point that the submits a new feature is just a new stable feature genders have their right the ice is the very beginning there was some very big changes in the early years but by the time Jacob 1 1 of was released the idea I had pretty much settled down where that OK I'll look like
well if you had a model called model model it had actually it's called on screen and that object had a bunch of methods on the introspecting the fields on the model and was get fields get fewer benign get fields with model and get concrete fields with model and get all related many-to-many objects with model looking at a clearly the policy while you were too keen on making it stable it but it wasn't pretty that you can't see from this that description of a waltz some of those methods include fields from pairs from dark can tell which runs as a
result the better right I was and I've unofficially stable API was an firmly wasn't stable and officially we reserve the right to change it but in practice we need enough people will be relying on it that we didn't we wouldn't change the was was a really good reason the best good reason there is to formalize it selected publishing and making official stable idea last
year as part of the Google Summer of Code Daniel took the job of clearing outlet crafted a keyboard had accumulated in the idea was that we could only document and publish changes the idea this is daniel graduating from university last year as you can tell he's a very serious some about that the spoken individual that was the result of Daniels
work well a new stable better idea and so this something like this the object is unchanged he still say here's my model my modeled underscore men but now there's just 2 methods on it the field to return a field with a specific time and get fields to return a list all the field on that they're all that well you can optionally include the field from CAD models of hidden field funding when something a little bit better inheritance tree so the bid Penfield's other ones coming from your so you superclasses and hidden fields are feels that back another field functionality for example the the underscore ID field a foreign key what fields have been explicitly hidden like our foreign key with related 9 starting with plus what you do on temperature closes there is a famous to go these are the was you are to many field objects which have attributes tell you the properties of that field so is it in a relationship with another metal uh but is the cardinality of that relationship with a what is the other metal that is related to it was it was medically generated or is it explicitly defined in a metafile far doesn't have a direct manifestation is about asphalt and concrete incidentally this made a whole bunch approaches to be good replaced get all related many to many object model with a much much simplified kernel and then I simplify effectively distillate list comprehension over the fields filtering out the ones that don't have a few properties we want all the ones that do have the properties we want instantly gains a new functionality previously generic AIDS word represented in that a model that could be because they're in country but we have to make a special case of that particular class to get them into coolers metarepresentation now we remove the need for that special case any third-party field including country including things encontra blackout ordered your GIS fields and all um generic key fields any third-party field can get same credibility is a core gender field and be included in that metadata out representation the but that's a very is useful thing now to be completely honest for most day-to-day build a blog use cases it probably is but it is extremely useful when you start looking at larger projects in particular anything that's that's approaching framework level stuff the a 7 API means you can now write functions that take a mental rather than a moral instance as an argument this means you can write tools to produce higher-level functionality that respond to the characteristics of our model and generate functionality based on those characteristics the so it is a practical example where men API can be very very helpful by commercial day-to-day Django application allows tradespeople planners illocutions to keep track of the work that I have to complete part of that means keeping track of customers the so I've got a customer users can create new customers in the right a piece of work it's linked to that customer when you anymore worst it's linked to the customer will require a payment it's linked to the customer so if you have see the full history of my customer with your with your company you can easily retrieve will work only invoices all the times that we like to the customer how about this that is being entered by humans so sometimes you end up with 2 records for Mr. Smith what you need is a way to get a message to records together this is easy enough to do anything to do with finite which is the record you gotta China which is going to be the belated and then you have died the following can intermediate any references to the tuple good instance to point the original instances that but at the so this is like a cat we got some models we've got a customer model with 9 feel the brunt of dialog we have broken a metal that has a reference of Frank to the work order and you water ID in a bunch of other interesting in the cells we also have a voice in a payment model both also on by that uh but by the customer and so we can easily define a merge operation for those customers and existing customer has good at work or is it could have been was a could have payments are given a duplicate customer and we need to find with those related objects uptake funky references and then delete duplicate magic so that you can merge customers the ofcontent but as the time goes by decide to add new functionalities system say the ability to rise quotes so we define and some use role that car and then someone that is a customer record and all quotes related to the did instance disappear what happened in well the merge mechanism doesn't account for quotes you up work orders yet that'll be in with the payments but the quotes went so when you deleted the duplicate customer it was still quotes related to that customer so the duplicate customers quotes were also deleted book so how do you fix that well obvious solution is to update you merge mechanism at the extra line you need to quote and that would work fine and you then add the departments moral to keep track of you to point you have your customers and so on and so on what you really need is something that will adapt to any new model as you at the and you do that in the program rather than encoding the metals that need to be updated use the meta model to discover all related models and then update the that right then you know or comes along with a foreign key to customer it will automatically be included that we're betting operation so what we do here we iterate through all the fields if the field is a one-to-many something that's on the remotely in development 1 of a foreign key relation and it also created so it's the far side of the on the on the 6 side don't the access and 9 get the attribute that to get a bit of that object update we attribute to well below the customer to be the original and of the guy interesting that this doesn't depend on customer you connection make a completely out of the merge operation is just 1 challenge extracting at the explicit reference to customer you know it's just the end customer equals original replace that with other programming look up all the name of the feudal being related fraud all of a sudden you got a completely generic merging 2 models into 1 that without any gender model that tell you that this is only working with foreign keys you also need to reproduce this logic for many many the one-to-many many and so on but the principle is much the same for those those types of fields
but so that's that's a simple practical example of some you might use meta in Europe right but the real killer app for the man right you are the reason I got interested in the project in the 1st place is the potential for exposing new DOS stores in for almost as long as gender is existed people have been asking the question how can I use x with gender where X is some non relational barstool mother good luck engine react sender attached to be when it is used by the flight happens debate at runtime gender coating Harvard the drain to the other and was completely dollars to agnostic it was an object relational model which is why you don't do joins you have a filter you don't by you aggregate now that dream didn't quite pan out that the year after Alex again did the multi diverse project for the Google Summer of currently the 2nd project looking at building a non-relational back end of for Django this database idea and it did work there are about of problems so the idea of a database that in for no sequel was kind of show the the question didn't go right so I can about the actual use case here where many parts agenda don't what the story you actually using views you are in the caching lactose don't use use metadata you with the as long as you're just accessing data you must use the native API provided by about a style is no reason to 1st the square paper about the debate into the round hole queries but the 2 big pieces of gender that are dependent upon the datastore mobile phones and the admin so would you that the question can I use Mongo DB with gender really can I get agenda for for my mother the metal and can I query in my mind DB Dada engenders added and if that's the value said it's a whole lot easier and a lot more plausible to clean that up those question Canada
gender from from and the duty model is right in the sweet spot of genders middle API I have an object what attributes does that object have when is it appropriate form representation of a to the that these are questions that are dependent upon having a relation about a store they can be ousted in all in the basic Python object could answer those questions for you the 2nd question can I query my mother the the Dada again adding only requires a little bit more information that you need to go and know what metals exist in a dollar store and you need to have their organized you needed to some basic tried operations this query primitives are much smoother API then the entire poem now I gave for the sake of historical consistency with callers operations gives insight if you can provide a doctor collects the right way Jenkins forms admin all forms that we don't actually came and it's not actually a general model under the hood is this to adhere to that basic API contract OK so you have to take your other Django application from party I push it onto another tree dentist about store but let's be honest that was finally it was never going to work in practice but you really have to do is get the benefits of much of genders tolling while using a non-relational but still the best possible this is because public support NATO and now you can do these experiments without actually making modifications to call to prove a point so the case study gender my life is a proof of concept that Daniel put together during the summer of cards to demonstrate that the man right I actually worked was it doing it uses Google's Gmail REST API to expose your Gmail mailbox in gender that now as a could be a set up as a quick is that it's not the same gender my against other releases of connects as many things as model and the code is available on the on Daniels and you have repository the other cat is this example does depend on a couple of small changes to gender itself things that we are in patches that we're looking at getting into and it disintegrated the last of the hard exceptions engendered IDC's a model you can just use is out of the box but it shows what can be done with relatively little effort heaven it's about 500 court the now I have the time to take down 5 of lines of code in the remaining 10 minutes about here and but I can give you a whirlwind tour of what you need to do in the following code is heavily edited for clarity will not even begin to work as as described but will still give you a flavor way way way way at so we start a manager you say you want loses the objects that will objects is a manager we need a generic problem that will point at gene my own and still your Gmail credential when you get there then we subclass that buys manager throughout mechanism for issuing queries of specific object talk to anyone to look at Macy's friends enable 1 to look at specific messages because they don't feed on different API entry points in the Gmail IPI I can't go to increase it's not about query sets again we have a by sponsor based query that's of extracts the idea of calling a REST API and based query set to generate those queries now you know the the query said is a subclass of least because it was really doing is representing a list of results you could use your Argentine of of useful but you can just use gender as we just use by Spot list if you need to and again we subclass that buys class the specific that the thread by ID is the actual idea violate the article so when you call it off for a query set your invoking get by ideally and we do a similar thing committed queries said when we do filter is a method that returns a upon vision of itself so you can start to China store operations and every time he planted every time you felt that you modified to add additional query parameters next without an animal here we
subclass chambers of options for the class that implements underscore matter because that is a bunch of functionality for free and we really need to implement is get fielding get fields and the rest works now we put together we define a base
Gmail model that retains state and we define a Python metaclass that will control the process of under construction In the class for each about morals and fat manager and without now you can say threadbare that objects don't get and besieged object stuff filter and rest retrieved data from your Gmail instance assuming you got your your credentials of proclaims since from the all weapons to register those levels in the and then you have a message in line the with some messages U of a thread in uses a bunch of lines and displays the number of messages in each thread register that would be and do exactly the same registration process as you would for any other gender model and know the so that's a little to assure amount time and that it is the same problem when the kid among the whole thing is 500 lines of code and I'm rushing through advanced show what what is actually possible now it is just 500 lines of code and what you what you end up with is reproducing a limited version of the IPI that should be familiar to you as gender uses models managers queries and queries and so on some is a call to action
this demonstrates giants they a goodly number of this looking for something to work on or the number of nodes that have on the project for you How about remedies and
even expertise and then relational data store mother they glycogen uh Cassandra react custody or anything else that happens to be a lot of the gender method up for that day for that out of school you get a CU without a store gender that Indian right follows that object of the when that traditional you can rack
and that's all you can rack your local e-mail inbox your find system even a polite US resources the jagged a dark and invitation to somewhat management of your AWS resources all in general then again when the dialog genders and well why not replace it there's no reason you could make a gender method that phase the signal using sequel alchemy so you gotta take a sequel optimal as a gender resource expose it into a into genders and in the most of your business logic your uh using the signal Alchemy API cause that's the 1 you prefer that for convenience and part of a new construct that model that is acting on the agenda for now if you do choose to take another project you are going to hit some rough edges so will warn you as I said genders and then using a mile depends on a couple patches that have emerged in the trunk I can't guarantee that we have fight every single 1 of the places in forms of energy much about this a couple places will be fully have made implicit assumptions about the fact that a relation about advice underpins this application but if you
do find about it's about words being fixing and the mobile we have contributing these gender emitted docs the confidence will have that we've broken the our independency in model form so I
just factor interest but the possibilities and every device and we have a plan for a couple questions relating the idea the next couple days or online and at the the technique reduces to the a if I am has the documentation for this and you know pretty good on the basis that is not much the documents and so this is a little too negative about aggregates those actually even some really good documentation for that so so you were using the wrong API that was formal well I the a you transform 1 to the other so yeah there is documentation errors result the documentation of how you might be generated doctor and fast lattice and the need to do is essentially appearing to be a meta model so if you implement get feeling get fields in inequality by so do you think there's remain the max a abstraction for some theories that would make sense in relation database that doing things like Moengo obstacles in life extended fashion to be available by the end of the to with things like documents as I got something of a set of absolutely added this it's aware that it is a one-to-one is a one-to-many is a many to many years at a you have low begins on many why would that not only that fact is but I think that there's no reason we can't have that flag even gender even Django itself does music but also on top of that you could you could you could set up in such a way that if that you've got you all already be done that needs to be out the field of articular flag that flag is not going to be on the any other doubts about the when you need to have a new dust or you can say you get extra defaulting to false and end any model doesn't have it will will shut up anyway so the I don't think this is a new type of problem that are to what we just discussed on and on just looking at the the gender documentation is page on mobile middle options and this this other page from the model underscore MIT API which is talking about the class options and I'm really confused with relationship is between these 2 things and is the possible naming you get some of that is a little historical not the name of the class options is never surface to the end user and its internal 9 and I'm not underscore measure is the only 1 that is there if there's something really cleanup is probably the documentation referring to options and because it is is something you ever really be expansion so yeah but there's also options under the more middle options which talks about options all I know I can still going on but the conflict of tension of the world not intimately familiar with and this is not yet and I guess I agree that and the they also letter and different ideas and suggestions about which 1 because of the idea of British letters of the word options in SUSY icon thinking he was actually service as public and you know it's something that is used because that's the name of the class not because it's actually and I need to use so it's extended to be deleted anyway it's being used so right but it's that what follows also data about it and the and the fact that we have on
Dienst <Informatik>
Prozess <Informatik>
Güte der Anpassung
Datenmodell
Wort <Informatik>
Computeranimation
Meta-Tag
Soundverarbeitung
Expertensystem
Computersicherheit
Open Source
Datenhaltung
Besprechung/Interview
t-Test
Zahlenbereich
Quellcode
Physikalisches System
Code
Whiteboard
Metamodell
Geschlecht <Mathematik>
Gruppe <Mathematik>
Projektive Ebene
Optimierung
Stabilitätstheorie <Logik>
Punkt
Datensichtgerät
Wasserdampftafel
Mathematisierung
Hochdruck
Formale Sprache
Klasse <Mathematik>
Selbstrepräsentation
Kartesische Koordinaten
Framework <Informatik>
Code
Bildschirmmaske
Informationsmodellierung
Prozess <Informatik>
Datentyp
Vererbungshierarchie
Punkt
Optimierung
Topologische Mannigfaltigkeit
Gerade
Meta-Tag
Schnittstelle
Funktion <Mathematik>
Attributierte Grammatik
Parametersystem
Kategorie <Mathematik>
Vererbungshierarchie
Systemverwaltung
Ein-Ausgabe
Hochdruck
Optimierung
Chipkarte
Arithmetisches Mittel
Objekt <Kategorie>
Bildschirmmaske
Datenfeld
Metamodell
Geschlecht <Mathematik>
Rechter Winkel
Dimension 3
Projektive Ebene
Metaprogrammierung
Koordinaten
Informationsmodellierung
Zeichenkette
Instantiierung
Objekt <Kategorie>
Objekt <Kategorie>
Deskriptive Statistik
Informationsmodellierung
Datenfeld
Körper <Physik>
Rechter Winkel
Mathematisierung
Körpertheorie
Computeranimation
Meta-Tag
Touchscreen
Resultante
Bit
Web log
Selbstrepräsentation
Kartesische Koordinaten
Kernel <Informatik>
Eins
Übergang
Netzwerktopologie
Metadaten
Prozess <Informatik>
Gerade
Umwandlungsenthalpie
Kraftfahrzeugmechatroniker
Lineares Funktional
Schnelltaste
Nichtlinearer Operator
Parametersystem
Kategorie <Mathematik>
Güte der Anpassung
Meta-Tag
Erzeugende
Datenfeld
Framework <Informatik>
Rechter Winkel
Geschlecht <Mathematik>
Projektive Ebene
Ordnung <Mathematik>
Computerunterstützte Übersetzung
Charakteristisches Polynom
Schlüsselverwaltung
Message-Passing
Instantiierung
Objekt <Kategorie>
Wasserdampftafel
Klasse <Mathematik>
Mathematisierung
n-Tupel
Zellularer Automat
Code
Framework <Informatik>
Weg <Topologie>
Datensatz
Informationsmodellierung
Datentyp
Vererbungshierarchie
Optimierung
Softwareentwickler
Grundraum
Meta-Tag
Attributierte Grammatik
Einfach zusammenhängender Raum
Relativitätstheorie
Mailing-Liste
Physikalisches System
Objekt <Kategorie>
Generizität
Mereologie
Speicherabzug
Wort <Informatik>
Resultante
Retrievalsprache
Bit
Vektorpotenzial
Punkt
Selbstrepräsentation
Fortsetzung <Mathematik>
Kartesische Koordinaten
Netzwerktopologie
Metadaten
Datenmanagement
Speicherabzug
Maschinelles Sehen
Gerade
Metropolitan area network
Umwandlungsenthalpie
Parametersystem
Addition
App <Programm>
Kraftfahrzeugmechatroniker
Nichtlinearer Operator
Sichtenkonzept
Datenhaltung
REST <Informatik>
Güte der Anpassung
Speicher <Informatik>
Abfrage
Ausnahmebehandlung
Meta-Tag
Menge
Rechter Winkel
Geschlecht <Mathematik>
Beweistheorie
Projektive Ebene
Information
Computerunterstützte Übersetzung
Message-Passing
Subtraktion
Quader
Klasse <Mathematik>
Mathematisierung
Unrundheit
Code
Multiplikation
Informationsmodellierung
Bildschirmmaske
Reelle Zahl
Front-End <Software>
Zählen
Vererbungshierarchie
Thread
Primitive <Informatik>
Speicher <Informatik>
Widerspruchsfreiheit
Attributierte Grammatik
Beobachtungsstudie
Videospiel
Vererbungshierarchie
Relativitätstheorie
Datenmodell
Systemverwaltung
Rechenzeit
Mailing-Liste
Menge
Chipkarte
Design by Contract
Objekt <Kategorie>
Patch <Software>
Quadratzahl
Thread
Mereologie
Prozess <Physik>
Freeware
Datensichtgerät
Gruppenoperation
Klasse <Mathematik>
Versionsverwaltung
Zahlenbereich
Code
Computeranimation
Übergang
Message-Passing
Informationsmodellierung
Datenmanagement
Vererbungshierarchie
Thread
Ordnung <Mathematik>
Gerade
Meta-Tag
Lineares Funktional
Konstruktor <Informatik>
Vererbungshierarchie
Datenmodell
Systemaufruf
Abfrage
Web Site
Konstruktor <Informatik>
Konfiguration <Informatik>
Objekt <Kategorie>
Datenfeld
Körper <Physik>
Thread
Registrierung <Bildverarbeitung>
Geschlecht <Mathematik>
Message-Passing
Informationsmodellierung
Aggregatzustand
Instantiierung
Objekt <Kategorie>
Knotenmenge
Rechter Winkel
Geschlecht <Mathematik>
Relativitätstheorie
Zahlenbereich
Projektive Ebene
Speicher <Informatik>
Meta-Tag
Stellenring
Physikalischer Effekt
Stochastische Abhängigkeit
Minimierung
Relativitätstheorie
Fortsetzung <Mathematik>
Physikalisches System
Mathematische Logik
Energiedichte
Informationsmodellierung
Bildschirmmaske
Verzeichnisdienst
Datenmanagement
Bereichsschätzung
Geschlecht <Mathematik>
Dateisystem
Mereologie
Wort <Informatik>
Projektive Ebene
E-Mail
Subtraktion
Extrempunkt
Klasse <Mathematik>
Besprechung/Interview
Versionsverwaltung
Automatische Handlungsplanung
Physikalische Theorie
Homepage
Informationsmodellierung
Ungleichung
Flächentheorie
Gruppe <Mathematik>
Fahne <Mathematik>
Datentyp
Einflussgröße
Bijektion
Videospiel
Relationale Datenbank
Abstraktionsebene
Mobiles Internet
Bildschirmsymbol
Teilbarkeit
Konfiguration <Informatik>
Meta-Tag
Datenfeld
Menge
Verbandstheorie
Geschlecht <Mathematik>
Basisvektor
Wort <Informatik>
Wärmeausdehnung
Fehlermeldung

Metadaten

Formale Metadaten

Titel I never Meta model I didn't like: The Django 1.8 Meta Interface
Serientitel DjangoCon US 2015
Teil 10
Anzahl der Teile 46
Autor Keith-Magee, Russell
Mitwirkende Confreaks, LLC
Lizenz CC-Namensnennung 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
DOI 10.5446/32770
Herausgeber DjangoCon US
Erscheinungsjahr 2015
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract This talk will explain the new Meta API, and look at Daniel Pyrathon's django-mailer as an example of using Meta in the real world. Talk outline: What is meta programming - Reflection in Python - What this means in Django History of Django's Meta The new Meta API - Daniel's GSoC project - API walkthrough So why bother? - How Forms use meta - How Admin uses meta - django-mailer: GMail in contrib.admin * Other options? - A teaser of other places where this could be used.

Ähnliche Filme

Loading...