What is the Django admin good for?

Video in TIB AV-Portal: What is the Django admin good for?

Formal Metadata

What is the Django admin good for?
Title of Series
Part Number
Number of Parts
CC Attribution - ShareAlike 4.0 International:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
The Django admin is often cited as one of Django's great strengths. With virtually no coding, you have a functional web interface to administer your data. However, the admin should not be your (whole) web site. This talk discusses when you should use the admin and when you should not, admim customization features from basic to advanced, and how to grow beyond the admin (even for administration).
Group action Code Multiplication sign ACID Client (computing) Solid geometry Mereology Disk read-and-write head Computer programming Mathematics Different (Kate Ryan album) Core dump Videoconferencing Cuboid Endliche Modelltheorie Extension (kinesiology) Physical system Touchscreen Software developer Electronic mailing list Bit Staff (military) Variable (mathematics) Order (biology) Website Configuration space User interface Filter <Stochastik> Point (geometry) Mobile app Branch (computer science) Raw image format Event horizon Field (computer science) Template (C++) Revision control Spreadsheet Energy level Computer-assisted translation Form (programming) User interface Information Gender Projective plane Physical law Database Evolute Cartesian coordinate system Subject indexing Particle system Computer animation Personal digital assistant Password Video game Object (grammar)
Default (computer science) Group action Computer animation Computer configuration 1 (number) Representation (politics) Endliche Modelltheorie Object (grammar) Mereology Descriptive statistics
Web page Filter <Stochastik> Presentation of a group Scheduling (computing) Group action Greatest element Computer file Code State of matter Design by contract Parameter (computer programming) Function (mathematics) Field (computer science) Number Different (Kate Ryan album) Term (mathematics) String (computer science) Electronic visual display Cuboid Representation (politics) Endliche Modelltheorie Computer-assisted translation Descriptive statistics Email Key (cryptography) Information Inheritance (object-oriented programming) File format Electronic mailing list Sound effect Bit Price index Instance (computer science) Sequence Category of being Arithmetic mean Computer animation Integrated development environment Query language Personal digital assistant Order (biology) Normal (geometry) Right angle Object (grammar) Writing Tuple
Group action Presentation of a group Greatest element Context awareness Multiplication sign 1 (number) Set (mathematics) Insertion loss Function (mathematics) Mereology Data dictionary Computer configuration Different (Kate Ryan album) Endliche Modelltheorie Descriptive statistics Social class Email Block (periodic table) File format Closed set Electronic mailing list Sound effect Bit Maxima and minima Instance (computer science) Sequence Data mining Process (computing) Website output Right angle Web page Point (geometry) Trail Existence Game controller Link (knot theory) Field (computer science) Declarative programming Template (C++) Number Element (mathematics) Energy level Software testing Computer-assisted translation Address space YouTube Form (programming) Default (computer science) Addition Multiplication Information Poisson-Klammer Line (geometry) Cartesian coordinate system Finite difference Personal digital assistant Logic Read-only memory Video game Object (grammar) Tuple
Axiom of choice Group action Greatest element Presentation of a group Building Code View (database) System administrator Multiplication sign 1 (number) Set (mathematics) Parameter (computer programming) Mereology Computer programming Mathematics Computer configuration Different (Kate Ryan album) Electronic visual display Software framework Endliche Modelltheorie Scripting language Constraint (mathematics) File format Electronic mailing list Bit Instance (computer science) Sequence Data mining Process (computing) Order (biology) Mathematical singularity Website Text editor Figurate number Web page Filter <Stochastik> Trail Slide rule Game controller Existence Computer file Online help Field (computer science) Template (C++) String (computer science) Energy level Selectivity (electronic) Software testing Computer-assisted translation Traffic reporting Form (programming) Default (computer science) Standard deviation Key (cryptography) Information Chemical equation Projective plane Database Line (geometry) Cartesian coordinate system Limit (category theory) Uniform resource locator Query language Personal digital assistant Blog Optics Object (grammar)
Computer animation Lecture/Conference
and time and time and time and time and time and time to do so this so thing to do but at the time and the time it takes to
hold the that's it all think of white is not all that of thus a little bit about the evolution of the talk the originally I envision this is a slightly different talk has been turned into what I was gonna say I'm here so the and is good for and here's some cool thing to do the admin and you can rent went the and which do that here's some tools you you you you take a look to grow beyond the and as it turned out I was looking talk that 1st part became came to be due to allow for the 2nd part so in the 2nd part of growing beyond the and is very limited in stuff and this talk mainly focuses on really what the ending is good for and how to make it better than the fall and how to configure it to be a really excellent tool for administration data on background we have been using Django since 2006 UTC including so the other personal project I had crossed a database I build cross-word I construct crosswords on and I had been doing that for several years and I had the master database of puzzles that I used to help me in constructing and I wanna weatherman for that database and I came to Django to learn to have this that and also to learn Python and with more recently I've been using Django personal project called contractor on in 2010 I started volunteering cat rescue at that time the cavity is fairly new and then as I grew in the carrots you from these foster home asserting administrative work for them and found that they were tracking it's the head south of the cats in the whole history of the set of spreadsheets and this was finally had 25 3 cats when you started to have hundreds Academy of history and hundreds of cats in the program found that was in the impossible so concluded that into a database and Django database and the the administration of using no admin and use the life of nation in an OWL Full from that project examples from the particle when I started working so saying I did start working with at that point time gender was pre 1 that they were doing some backwards infallible changes new forms was you know you have a uniform standard branch was sigh in development and I was using features of Adam and I wasn't sure they're going to maintain and I want to make sure they maintain them so I started playing with that lasted involving the trip was during way of using to keep the features I wanted to get involved in development in we don't since 2008 I also in 2010 faster working for consulting group we build websites for clients and we work for you follow we work on a dozen different websites and use adenine in varying ways depending on the budget and the needs of the client is a lot of different in the the and what is happening and it has a vertiginous killer app if the school application you get out of the box you do anything I'm pretty much anything and you can just administrative data justify new models and this is my information any time you can have a web interface you hear of I will be ready in case of a lot of people refer to assess credit interface that were bred there on bread from browse read edit add delete all things that the and the system can do well on and it has this this stuff and on if you just bring up a Django 1 7 project and non stop project and create a super user and if any of you get this log in action log in to get in that age what this is showing you and the list of applications you having a site and for each application has registered models it's shown in the models that that that patient have registers are shown there that you can you can do something with you can click through into 1 of those in this case and in clicked into the users and I can see I created a single cities and so on in this case this the list you for a model and you can start seeing that there's some advanced capabilities and gives you can use the search there are there it is not on In actions drop-down and ability to select items on the left side of the ways to say I want like these out and do something with them and on the right side got filters that you can specify filtered and the object based on the staff of the Supreme user groups and start to see that there's some advanced capabilities that in our brings to you if you click through interviews and you get to the end the user and in here you can see that can provide some ability to make it on prettier than and just as the fall spewing out field this the fields for the used here have I think been grouped into areas that of the basic user information faster and there's personal information gain and emissions some customization and group the fields of user in a reasonable way for this the administrative it you can also see that password field for example something special has been and is not showing the actual acid value showing some information about so as the basic and you get out of the box yeah 1 designed to examine the sock which I would I do a group and it didn't turn into this as much as I wanted but on politics of who should use the admin who should who should be exposed to the admin in my opinion out of the way in here if you think about version is the and to a extent it's useful for them in developing your code on distinct delta should definitely understand the and the and how it can be used to configure and how can these how can be configured to be more helpful to people primarily that's for site administrators as the admin can be very useful for site administrators and but if you just use the site administrator of law on configured as interface you're gonna presented them with a bunch of stuff that they don't know this you got ancillary models and packages even stalls perhaps that they have nothing to do with their and their business needs but they're there for the sake of some reason if you show that sets them that's probably gonna confuse them on the just show the raw dumps of fields to fill our whatever that's probably not even from it so I think developers to understand the capabilities it added so that they can configure the advent of the site administrators to show the models of makes senses that administrators in a way that makes sense so that that's what this talk will focus on and in my opinion both of them think admin really should be yeah yeah open that end users and I don't think most that should be built around many on the sites have way more complicated things that they need to do is browse read data that we and if you're going to build cited think you should build a site and not try and grow and into into more advanced site so the solids and the basic easy customization you have now on on his previous screens on where should was full of Django administration wanting to gender administration of index cases that you're watching you can you know when you build sites they actually it's not dengue administrations my site administration so for my crosses the event for the history variables you that just by putting Adnan from gender conscious set the size of the site of the sales something specific to my site and suddenly I no longer have and 0 this easy part is new in general and so on previous it previously had a copy and template and that configure and so on the part of the index that you could do it in the past but it's it's a little easier now I want you to get has the money and worsening of that that doing in the fading on its history but they anger but it doesn't those identified the world you will hear me when I'm not going like that but I don't know enough to over there I turn this that of the front and rear end of the day but at the cost of but of the actually it is like that of yeah so it it at would book but at the it end of the year and it was videos talk on the side of the anyway the occasional has been configured of it has the across the database stuff on the top of on the title and you can have on top of once you get beyond that basic level customization and you need to start talking about how you want your models to appear in ongoing in order to describe that as much of the
1 doing is talking about model and objects and where model and an object is is the description of a model representation of a model in admin some Django provides and provides a basic model and then they can introspect your model and provide you know default the representation of a model that you can also configure that these more tailored to your needs and that's what a lot of this talk will be about these are defined in admin up you II and they are loaded at start-up and part of the coding there's been registered models to and on and they have many many many options and when I try and do in this talk is to focus on the ones I find to be the most useful and on organized in a way to talk about here's options use for finding data and filtering data and seeing data here's options for editing data his options we both getting data and here's ways to control access to data in the absence of sunshine trying group my discussion of the ending of that and so start with what's not bad the
and you start with this is the beginning of the modern definition for my cat model in the contract to judge reminded them might guess fundamental model and so all my and objects are going to inherit from the Gulf of Aden that model and in the normal naming convention is you take a model name tag and the that that's what you call your model and an object here particularly model on in 1 that 7 there's any decorated lets you easily register miles at the end of the state and the register file in older generation into in that sector registered to specify the model and use for each of your models the the 1st 4 things that affects on our controlling how you see data what you see about the list of cats on and you can filter answered that I so I thought that was displayless filter with edible and search fields of the 4 things I listed on here on and she can see the moderate listed tuples of sequences of things and most of them are 2 strains of market decoder like that foster homes filter which will talk about a little bit more and and so with these 4 things influencing which you see about cats you get a page that looks like that but all this so all of which you see here on list list display is controlling what columns you see there so you see the name of the cat that their birth the intake is the cat estimated date of birth and then those are all pretty obviously simple field on the model then you can get a little more complicated than the age of the alternate for the cat those are not actually feel the model of the information about the instance that we generated somehow on all today there's a little bit weird looking at some the and some not all of the history behind that there's more fields from available there is a checkbox because available was listed as a list edible so we said there was list available in the field of the cat I wanted the editable on list page so this is jumping ahead a little bit is a way to allow war on to some both editing capability where you can see a list of objects change values and objects and save them in 1 go it down the bottom here you see the state of policy to change the availability of cat right on the stage on the topic the search box and strength they went in the search on through the cat's eye there's the actions of later on the right side there's filters some of those are simple filters on fields of the model that provides the fall back to foster home filter is the final 1 down there so you can see that there is a list of of Boston and on the right side of foster home there's a number which is actually the number of category in foster homes and so that some custom code to build a custom filter for this and we'll talk about why we do that and how easy it is to don't and there's water and and you can see that that that list is ordered by intake based on their own but on different headers in means and change the ordering the presentation of the fields so 1st off about list display and how you can do something more than a simple field values and it can be a simple field name and some of the simple field names work the callable you can specify the following a number of ways of you can be imported specified unless you can specify a string that is actually there's a method on the model learnt from my admin I tend to make the methods of model just because I find them usually useful outside and so it's useful to have and have them available the altered they want is this is the code goes behind it the method on models together model instance as its self value and the to answer the mystery of why some of them were red is not a cat has actually on which is saying if they if that has been said this method just returns that date format and month day if that has not been set and this method returns HTML for the anticipated stated date for the cats on in the HTML is formatted is made to format that date as red so the red indication isn't even indications the ministry said say hey this cat Alexeyeva Spain and recorded this cat meaning had the Spain schedule meaning to have a recorded so the red is an indication of the administrative something needs to be done here and in terms of admin and capabilities in order to allow you to include HTML in your method here and have it show up properly ideally cell adamant that it's OK to render tags that I have included my outputs I say allowed had the true and also tell and if if the user wants order on this field you should order honestly per that will kind corresponds to the altar date for a cat I and I can also control what gets displayed at the top of the column mindset that to all to date so that's very simple code to allow for controlling which you see in the list display we have to list filter again this may be a simple field on the model I work in because some filter occurred and it's really easy it's not hard to write custom filter of in this case we need a custom filter because foster homes come and go so I'm over the course of 6 years and rescue we had a lot of foster homes not all still active we all want a showing up in that list to choose from necessarily when you filter you just once the active that cats on and we don't want the we foster homes because there are things that reference foster homes and we lose history about were captured in the deleted them so the honestly environments feudal Markham inactive and we still want we'll filter on active and so the you write these because Adnan has provided a a base class the uses internally for most of the filters simplest filtering just extend from simplest filter to write your own filter and the information you need to tell that about your filter is what you wanna call it the title of the top foster homes but you also say what query string parameter you want to use when 1 of those is selected the effect is that Uriel is modified to include the query string parameter with the values say I wanna filter on this through string keys that has this value so in this case I have a page as far as the key and you can make however you want to see the major values and field on the same page there are 2 methods 1 of which is page lookups is the method is going be called to generate that list to show and 2 things that need to include for every foster home in that list is the query string he's value for that 1 and the human-readable representation that so the simple code that filters and all active foster homes and return that tuple of the human-readable representation and the primary key and then the other piece that you need to implement the query set method which says when my when when I change this pages being presented this is your chance to filter down query if you're filter have been activated and you can tell if the filter has been activated by checking felt that value that sees if there's a value for your query string key and so returned to you and in this case if it has been said you can filter down to only capture in that foster home so it's very simple to add useful filters that are helpful to administrators in narrowing down the the looking at I am moving on to search search fields with another list fields it again that could just be a simple field on your model also a search fields you can use double underscore syntax to traverse to a related model and say I also on search on and not just the cat's name but they adopted me so that can be helpful in times of and I noted on the on page ratio this that by there was text description of topics that what was being searched an admin does not do that automatically and it would be hard threatened to print out a list of things the search on so the way in which but personally I find it useful to know what's getting search so I usually like to customize this on the way in which you that
is not you know why I keep getting a key in of so or anything
and the way you in which you do this is you overriding had been template so the admin defines what templates are going to be used for different operations that changeless template the template on and you can override those at the model level at the application level and at the global site level in this case of the changeless template for the CAT model which is the template admin see track is the application CAD model and all I've done is extended from the base changeless an admin and overridden the search block enacts include my text followed by what the admin would produced ordinarily on so that's fairly simple you think they did have to dig into the template and see did a defined block psychedelia right think that's on entirely well-documented yet on the existence of the templates is a document but but the actual blocks in them and whether they define all things that you need to be easily alright bits of the pages is not necessarily fully documented so that is presenting data filtering data searching data from the next thing to talk about is
customizing the ability to edit data so once you've found the object you want edits on how the control what you can see that what you can edit and how it is that the for the then talk about our field sets really fields in lines and also unlike talk about this in the details of that here on you can also use override form completely but at the end users by default admins going to create a model form based on your model you can say a steady 1 so the form you can do everyone is formed as an example of a way to use that that for the cats oftentimes um you're taking cat need to supply the estimated birth but in fact it's a lot easier to say this cat looks like it's 4 weeks old and not have to go back and figure out of 4 weeks ago at the date was 1 such so I changed my so the forms here where the user can specify either the estimated date of birth for the age cat and the formal automatically take you 1 of those and said if the 1st field so you can override the form entirely do whatever you whatever is useful that's fairly simple to do the the complicated thing is what you might wanna put in a form that depends on your own business logic but fields that are the things that you specify say I want this group of fields and in this group revealed of such such as the name this group of fields such and such and these conidia deny nearly all of them because what the weighed declarative definition of layout it's just kind of gets to be will but are likely to get 3 loss on so the specified as 2 tuples on the list of YouTube older sequence of 2 tuples the 1st element in the tuple is the name of the fields that which might be empty at the top 1 is usually usually on and then the 2nd element in the tuple is dictionary that describes the options for the fields that the dictionary has some he's 1 which is in the fields to include on in fields that on you can also include other classes he in a dictionary to influence the classes that are put on the HTML for that fields that can influence the presentation and Django added by the couple classes you can also extend the CSS for admin and provide your classes to do other stuff he wanted I have an example of this is the beginning of the except for a cat on the top 2 part has just basic information about cat names testing is to such the 2nd fields that have the name of description it has a different set of fields and it's also specified classes on its side laughter laughs and and what that does is say this yields that name description of what is going to have a link it to allow you the show and hide that set of fields so you don't necessarily have to see the whole thing all the time on 1 thing point out here and 1 the reasons this gets they will that hairy is you can in that was fields that you're providing group things so as an example of being in a foster home or groups within that list and the following fields are grouped that lists and what that tells the administrative put these on the same line rather than putting them 1 after the other so lets you pack more information into the into a single line rather than spreading out vertically down but when you start doing that you got tuples within tuples within dictionaries intervals and you don't know where they need to close Brenner close brackets that's why they get to the area of but they're useful offered for grouping information to show to admins and in a lot of passion really feel about combine an example here with inline somewhat what you do really feel the say I wanna show some information about this this field which may actually be fielded may not be field means something about the the instance but I don't want to make it be editable so it's time to show up in HTML input in any form on it's just that the information and since it is just that the displayed you can insert specifying the fields specify callable it returns some information on in lines the life in a read-only certain lines in line the way to say on editing in this case here who may have adopted some cats caretakers of person who may have adopted concatenating foster homes on and in this case it's a caretakers have information associated with them they have phone numbers they have e-mail addresses they may have multiple of those and they have adopted cat so you can see at the bottom caretaker admin defines in lines and these are the things that are related to a caretaker that I wanna show in line with the caretaker and I want to potentially be able to add phone numbers for this caretaker and not just as for the caretaker and the ones that exist lethal that exists and similarly for Kathy adopted anyone in and it's some of information about half the about of as shown in the example in mine action is the 1 for cat which is somewhat customized and show some of the options you specify for any in mind you can extend extend the wrong and that tabular inline were and that stacked in line it's just a different presentation format and the In the absence in in mind the are overlapping but not not exactly the same as the options for a model and so in this case you need to tell the in line with the model is on that's related to the page of the on the field the you 1 displayed in this case I was to just 3 fields of very many human capital C in the context of looking at a caretaker was adopted a cat policy is the name cat the adopted name a cat and a mycogen nation on and of those fields the only 1 I want and it is the adopted the cat the other 2 are specified as read-only some might need edit that information I hat on caretaker page but also the maxim equal 0 and says can sound like it's a that on the but what it says is that 1 seemed like once you want at any but but I do see the ones that already exists but also the site on Monday of the week about cats from this page set is not worried that I'm in the effect of that is a case like this this is an annotator a caretaker you got your basic caretaker fields up top no it is not going to be customized on the Lord that in mind for the phone numbers for this caretaker in much the e-mails that have also not been very customized by evidence that on blank ones that you want the ability to add so you can see there's a link for some jobs but to add additional phone number to e-mail addresses addresses can also edit or delete any fields and those that want it and the cat like sees cafe adopted and their adopted and they adopted right information and the name is the only in the adopted name is the only information can change and the reason for this presentation from the administrative point here is this is the page that person who does follow up on cats would be going to to contact the adopter 2 weeks after adoption say how are things going the any problems in the question the weightening have so we can reduce the microchip so on this page that's the only information I should really be wanting to change the document cat so that feeling in need of that is a little into how Adnan allows you to little women were closer kind but not really so that you can you can tailor the presentation of the object and objects related to it and seeing to it based on what decades in for on yeah so moving on and this is that editing moving on to bulk editing this is
another thing that adminstrators often need to be able to do to create in you a bunch of things all ones that having an animal individually and we saw a little bit of Balkan capabilities with them the list editable on admin actions are a 2nd way of doing bulk editing and they're extremely flexible anything that follows the select a bunch of things 1 or more things choose an action and go do it so can be done with admin actions and admin actions are specified as a list of strings of model and here's actions for cats include the ability to vaccinate cattle recorded activation of cats recorded movement cat recorded testing cats on and I've shown example of vaccination catch on this is just a method on use side strain is a method on the model and the gets as well as itself model and the request and query set which represents the query set of things that were selected for this action i if all you need to do is something like markov blog entry published you could do that here and just returned redirect changeless page if you need to get some more information out of the user you want them to confirm what you but they have to do generally what you do is redirected to another page that handles doing that so you take the queries that you were given on figure out what are the primary keys are for that query set and pass them along to some other of you which is what is on just redirects to see trackbacks cats method you on and that's it and the only other piece of information is that the action namely shows up and drop down the VAX like cats and show the code for what that doesn't show the on the workflow of selecting is to select the left you see that they're highlighted in yellow at the bottom of selected for cats for vaccinations selected the action of vaccinate and I'm about to say go ahead and do it and then that you that injury code for is a pretty standard form view it generates of form for the user to fill out includes the data 1 cat vaccinated and provide a choice of listings vaccination they got and then when that form is posted on the chosen for cats chooses to vaccinations new distempering the 1 caemia it can create vaccination that's this cat to lot more convenient having do all in all you can do anything you want an admin actions you can upload CSV XLS files and process them but they're incredibly flexible any workflow that says select do something with that selection you can do it at action it was a little thin lead to get us to look like it is part of that and the kind the Indiana templates and see how many the breadcrumbs look that way but it can be a kind sites are at home so yeah that is located in and next remark about access control so I mentioned beginning In order to make the adding useful for your site administrators it helps to limit them to see only those things that make sense to them and 1 way of doing that is with the default Django permissions in groups and that that come out of all polishing so every myelin Django has read read the change in N and is silly and had solutions and those permissions are automatically available in and then you can assign them to user groups I usually find most convenient assignment groups so that I can change and then assigned used to groups so that it's more convenient to update on test the application grows on certain is the fact that the track and group that has on a set of permissions for the Cat Tracker application and I'll let you see this group does not have a set of applicant doesn't setting permissions for a completely different application on the same site the optic track program that's a completely different parameters do vouchers have do the cats on so we have different volunteers some work with the voucher programs the work with the cat tracker in the adoption program so depending on what you do with the rescue you may be in 1 or more of these groups and when you log in and then you only see the things that make sense to you this is convenient and it works when you say when you can do that we can say that this on here is working with vouchers they should get the optic track perennial permission to use the vouchers the altar track it doesn't work when you need to give users access to a model but not necessarily all instances of a model or all fields the model and it is possible also to use and then to customize down to that level but in which you can do there is nowadays a general and 7 I think pretty complete we pretty much everything I've talked about here as you can set this option on your model added into a sequence of whatever other are methods on the model and where you can implement a method say get fields that get list display get fields and those methods are given the request objects of those methods have access to the user making a request they can use the user to figure out
this user should have access to these things in the database so I should show them this list besiege access these fields so you can get fine-grained from for object formations in the admin by overriding novel and not on as an example I've done this in a site where I wanted to allow the site administrators access to users but I didn't want to let us administrators access to the super user actually user on so I need to be used completely invisible to the existence of the field Review of time I'm so that you can do that yeah 1 of the k many starting limits on some of the things that I have found lacking in and then there's no reporting and ask for it in many different ways many different sites that I really like the balance is saying you can add it there's no option to act on there's no easy turn on you can do yourself on Madonna in coupled for projects on my editor reporting the contractor database in a couple different ways and so you can add on but it's not anything built and is also no workflow dashboard and we have 1 project where it was opened the end users have this complicated relationship of models and I want to say you need to do this and the need to create these things they need to do this thing and they need to do this in a we didn't have meant and finally and this doesn't doesn't provide a way of saying you know when you're done with this go and do that I'm so it doesn't it doesn't really right it's sitting on the show dashboard on when I will when I use it for the Cat Tracker and I see other people user for the contractor I feel a lack of on some notification kind of things to say you know you're the person that does health for the cats and you should know you log in today there's this was to capture the you need that's the same but I can build that as you know there's a report for vaccinations what coming soon I can add in an e-mail it's and the user but it it because I thought it was built into the site and that doesn't have and there's no easy way like think of to really added a general-purpose way to add and so we need these kinds of things when I start to think you grow your growing beyond the admin kind wanna start doing your own thing on I was not aware also then in mines are restricted to 1 level so you can edit things that are directly related to the object you editing but not things they're related to that and there's a very old thickening of 11 thousand that requests nested in lines in the ability to in edit things related to the things related to the thing and couple people have made serious attempts to try to implement that it hasn't happened yet it was that I ultimately so another issue with the building of the and it doesn't look like your site of work on a couple sites where we have due to budget constraints in the needs him here's something you can do an admin here some things that we build on the front and site and they look pretty different you can skinny and then you can go over there but ultimately it looks like at the URL the bike at all so there's some some confusion that can result some you know why can we do these things in in this part of the site and you can customize it really nicely in do exactly what you want and over here we can qualities were building up that you here on so that can that can get to be an issue obsolete when you start in these things is when I start to say maybe we ought not be building on that and and what do you do instead of this part of talk that Marty onset time on this so it is the 2nd part of my talk i which is from this in 1 slide is you write your own bread and and Django actually makes this a pretty easy and that's why we all of Django if you have them like that and customization you probably learned that building a bunch of all forms already in your pride and reuse those in building your custom whatever you need to go beyond that on their assistance frameworks informed helper singing we step outside the and then what you lose is the default reasonable looking presentation your stuff so you need to build your own see if that's your own form presentations there's helpers help in that and we use the wing and itself on this there's something admin does that you really like you can always look at the end and go and see how did it and then pull it out and you yourself I did that with the cross for database when I was just getting started I love the filters I wanted to do that in my own code and look to see I mean didn't I re-implemented in my I was before then it was easier in all so you can also script from 1 thing and so that is what you do when you grow beyond and and I did malaria and I had a picture cat instead of Old World a few new things and to