Transcript: Fall 2024 Podcast Relaunch
hello folks welcome to another episode of django chat we're back after a long summer break now
don't get excited this isn't a real episode this is just me and will warming up for the season so
will how are you hi carlton i'm good i'm happy to be back yeah this will be we're going to update
everyone on various things in the django world and that we've been up to and in the next episode
which will be in two weeks we have actually no next week excuse me right before django con we
have the two django fellows sarah boyce and natalia bedart so stay tuned for that but this
is just a special get back into it episode and update everyone because we have been off
for the summer so django con we're both giving talks yeah we are that's exciting django con us
which is happening in durham in a couple weeks um tell us about your talk you gave a version of it
at django so it's the same talk i gave at django in europe but um it's compressed slightly because
the time slots at django con us are just much tighter
and i got done with this a couple of years ago and i would just well i'll just give my same talk
that went nicely at django in europe and then i was like oh no kenny mcglocken's holding up the
time i'm like what i've got more than 10 minutes left so i've got it yeah you were like 2x speed
on on it i remember and i was like oh that's i wonder what's happening i do have to tighten my
talk you know a little bit i have to drop various bits or just you know skip past them quickly and
when i do it in durham but yeah so it's this idea about api maybe do you do you need an api so i've
started building my new application parts which is what i'm working on you know since i'm stepping
down as a fellow and um we've been using django and htmx and django template partials and you
know alpine js and a year and a half in we've got a rich application it's it's kind of coming
to maturity now and we've hardly got an api endpoint in sight there are
one or two just there but it's it's a whole world different than before i started the fellow where
i was working on rest framework and in those days it was api first or api only right that's how you
started with django right it was via dr yeah so and it's just a matter and the talk is essentially
about that change between the world of 2018 say when i started fellowing that was api first to
the world of 2023-24 where it's api maybe
and that's the idea i mean if you need a dedicated native app you still need an api
but if you just want a rich web experience well not necessarily but in general yeah no i mean
yes you're still going to build the api endpoints for a swift integration or a um you know a
kotlin integration for android definitely right and you've been i mean before starting on paths
your own um button deployment you you did a bunch of work with swift yeah no i mean so this is this
is a very recent switch for you yeah i mean this is not like you've been doing this for a long time
you were api first recently yeah i mean i so i'm still building that i'm still using a button
myself i just never i because my son was ill last year i missed my window to to get it shipped and
so it's a bit like okay when do i now find a chunk of time to take that from works on my machine to
productized which is you know that big step but but but that has a big swift yeah no i mean so
i'm building you know i use mac i'm you know it's swift ui is the mac development environment that
you use these days and it's it's lovely and it's nice and yeah so um but um yeah so i was yeah and
that was only six months a year before um embarking on paths but it came to be the case that it's like
okay we need to get this shipped in very tight time schedules um what's the most realistic way
to do that and the htmx alpine html first um approach was literally the
only way that with the budget and the time constraints we had that it could be done
because literally it's only me on the development side and so it's not like yeah it was before it
was it was like you you know you'd have a back back-end developers you'd have a front-end team
and you'd sort of yeah but you but you're you carlton no but we didn't have the budget for
that multi-team multi-disciplinary thing and yet you know we're producing an app which is
it's quite rich it's quite nice um and you know we get the we get the clients oh that's good oh
that's great
oh that's and it's like okay yeah that's all doable without this need for these much more
elaborate um tool sets which is which is fantastic i think and that that's one of the biggest
questions i get with my django for apis book is people saying should i you know should i do this
for my solo project and i almost always say if it's just you no like you can build to that but
just start with start with htmx at this point there's no need to go native unless you have to
unless you have an existing
if you can already build a ui in whatever framework if you know if you if you if you're
already an android expert or if you're already a ios expert or you're already a react expert
then why not build the back end that just ties into that but if you're having to learn two tool
sets at the same time no no no no no no no no no just not we're all we're all uh full stack yeah
well right there's this idea that full stack the the native app was this glowing this glowing
castle this disney-like castle you know the princess castle and then the full stack is
like a sort of shed held together by you know yeah i mean it is interesting to try to take a
step back i don't know five ten years it used to be that you just couldn't build anything
interactive that was any good without going api first right i mean it's it's sort of i don't know
if it's something that's been going on for a long time but it's sort of a thing that's been going on
snuck up on people but i mean htmx you know we've had carson on the show i mean that technology
has been around for a while so i don't know if it's confluence of alpine js or just general
frustration with what kind of react and android are doing they're becoming you know they're
almost trying to become full stock frameworks themselves where there's this you know the
pendulum has definitely swung okay so i think on the technical point of view from the technical
side that the web native dom got good in the intervening period so there was this golden age
where you just sprinkle on some jQuery
and you could build anything you wanted.
And it was just like, you know,
building my website, sprinkle on some jQuery,
a few lines of jQuery and, you know.
Copy and paste it from Stack Overflow.
Yeah, and, you know, plugins galore.
It was just, it was glorious.
And then it just got ever more complex
because ever more things wanted to happen.
And native DOM manipulations were terribly slow.
And jump.
Well, that's the point of React.
Right, and the virtual DOM and the diffing of the DOM.
It was all about that.
Exactly.
But it turns out that the browsers got faster
and DOM manipulations are quicker now
than virtual DOM manipulation.
So you might as well just do it natively in the browser.
The browser's caught up
and they in fact got in front of
the virtual DOM diffing technique.
And so...
I hope that's in your talk.
No, no, I haven't got time for that in my talk.
All right, well, won't give away too much.
No, I can't, and I'm not going to apply.
But DjangoCon US does have these 45-minute time slots,
but I couldn't apply for one of those.
I couldn't do a 45-minute talk.
That's crazy.
Yeah, I think my 40...
I did one two years ago, a 45-minute one.
I've done a couple of 45-minute ones.
I think those days are behind me.
I'm also...
I think we're back to back on Wednesday.
We're both doing 25 minutes.
Yeah, there's a Django chat hour near the end
on Wednesday afternoon.
Yeah, so kudos to those of you who do.
And maybe sometime again,
but it's sort of like a marathon versus a half.
It's not twice the effort to do twice the amount of time.
It's at least four times as much effort
because, you know, 25 minutes,
I don't know, you sort of introduce it, talk about it.
The time's done.
But 40, 45 minutes, you're up there for a while.
Yeah, there's plenty of time to show
what you don't know in 45 minutes.
What are you talking about if you're only doing 20 minutes?
Yeah, so I'm doing a talk that I gave
at Django Boston back in February.
I think Django Boston has started up again.
And they asked me if I would do it again.
I think I would do an inaugural or re-inaugural talk.
So I said, okay.
So this is on Django user model,
which also I feel like has had a lot of movement and momentum
just in the zeitgeist.
So Django's user model,
past, present, and future is the discussion.
And I realized that until I did this talk,
I didn't really know the full history of user
because I came to Django in 2012.
And actually 2012 was about the time the first,
there's a whole wiki that,
Russell Keith McGee put together
about all these decisions around,
we should do something about the user model
from back when Django first started.
And so the talk talks about
how we got to where we are now,
where we can all agree username is a little bit outdated.
Maybe you want email.
We have Django all off.
So I'll go through what I think
are the current patterns, user profile.
And then I can talk about the future,
which is kind of exciting.
You just published this magnum opus on Stack Report
all about your thoughts on user model.
And definitely I've been influenced by you over time.
So it's all about user model,
kind of how it's developed,
where we are now,
and give some context for discussions
that are happening now around,
we really probably should do something
about simplifying it.
And it basically comes down to
custom user models were introduced
to solve a problem,
but it means that now authentication
and authorization, if you will,
or permissions are conflated.
And that has a performance tax.
It has a complexity tax.
And it's just ick when I'm teaching people
that I have to do this.
I have to say, here's the user model.
And then I have to go, oh, wait a second.
You need this custom user model.
What's that?
Oh, and then there's also a custom user
or a user profile model.
It's a bit of a mess.
Most web frameworks just give you off and off you go.
And so I think it's a little bit of Django being,
it's so customizable,
which is why we stay with it and love it,
but it is off-putting to beginners.
So anyways, and you've made some moves around in core.
Maybe we can actually do something here
around updating.
I mean, I think it's kind of a good idea
to have a custom user,
which I know is one of the blasphemies out there.
Well, it goes against the stock advice.
The stock advice is you should have a custom user model
and that's just what the docs say.
And I don't agree with that.
I've never really agreed.
I've never used a custom user model.
I've never felt the need for it.
And at the beginning, it was all about,
for me, it was all about logging by email.
But there are ways around that.
And I think the discussion back in the day
went largely,
it's not feasible to migrate the user model.
And so we need some other solution
and custom user models are the option.
Now, I think we gave up too early on that.
And by doing that,
we created this kind of world of complexity that,
and this world of complexity,
particularly for new users where they come in and they they're going along and either the
established ones you have your pattern you just do it how you do it but a new person's like what
do i do it's like well yeah and the thing that we see all the time is people start off and they
start with auth.user and then they they find these warnings when they've leveled up a bit but they're
already like several months into their project they're like oh i've got to restart from scratch
and it's just no no no you're totally fine don't worry this the projects using auth.user are legion
and they don't nothing bad happens to them right um but i think we could i i put out a project
earlier in the year called django unique user email which just shows how you can do a kind of
bolt-on migration to the user model and all of a sudden you've got unique emails and then you can
do login by email and i want to do one about the the profile fields like the first name and last
name fields which are a bit icky and we should we should try and you we can just so kind of get rid
of those as well and you know if people wanted to while we're in
while we're in
while we're open while we've opened it up we can and people then give people the option to
toggle on or off username or email you know because you don't necessarily need login by
both i like login by both but some people just want email only and all auth has to do this kind
of trick where it populates the username field behind the scenes with a unique identifier which
is fine but if that field just kind of could kind of be just could disappear that would be even
better but then the idea would be to pull those credentials off of the user model and allow them
to say well what about github login and what about um microsoft you know my microsoft org login for my
work and what about um i don't know sesame login where i get a unit login code and have different
credentials more different ways tying in with things like the touch id on your computer or the
face id on your phone or all these things which nobody even imagined back when django was born
right and then you know the fact that two-factor auth is a third-party package which i think people
like but again that feels like a lot of time and i think it's a lot of time and i think it's a lot of
like something that should be 2024 have an official be some story version back to roth in
django but with batteries included right and that's that's pretty bad right right right less
magic more batteries so anyway so the talk will be about that your post is already out there that
that's great because that gives me something to point to for the future and i sort of go into the
history in the present a bit more and nothing's going to change quickly here right this isn't
like oh we're going to suddenly because we've got to do it in a backwards compatible way we're going
consensus but i think this is important context for people to know who are new or intermediate to
django because in practice i mean there's you know there's a lot of people i know who use custom user
models loaded up and they're fine with it you know so that's but it's it's one of these things that
when i gave the talk the one two years ago which was sort of a in a way my magnum opus of like
here's all of django i tried to point out you know cover every area be like this is one where
there's differences of opinion and the difference is you know sometimes it matters and sometimes it
doesn't this is one where you know you just need to pick one and stick with it but unfortunately
we have a good half dozen areas around where someone who's new has to just pick something
and it can be confusing because this one you know you can do it both ways right now and
and it's fine but there are some other decisions you can make that will hurt you
in the long term that you you want to get those right choose your own adventure yeah um
anyway so i'm looking forward to that and we're going to be back to back i believe on wednesday of
django con in the afternoon so anyway so speaking of giving people you know who have got to choose
their own adventure the advice they need and you've got the the book's got an update right
you've got the fifth edition yes fine yes yeah yeah fifth edition of the django for beginners book so
it's 5.0 plus compatible has a real cover i updated i added a whole nother project so i dove more into
context which i i felt like was kind of missing there's a lot more on function-based views so i
show both function-based i actually start with function-based views add in class-based views we
do some projects with both and then i go uh purely class-based views for the last the last one um but
i really wanted to get across function-based views because people see that it's important
to understand i think it's a little easier to teach with it understand how the request object
and the the context work together so there's so it's expanded it's updated i'm happy with it
um i'm still gonna i'm gonna need to update the apis and professionals books but anyways that's
out um and the main thing i've been working on is this learn django.com where i'm gonna have all my
stuff online you can get free premium versions um you can sign up for an account right now actually
if you want it doesn't do anything per se but you're in the system um but i will use a name
i yeah reserve a username i can't put a date on it but certainly by this fall if not
certainly by this fall it will be out with the courses on there and then i have updates i have
an e-commerce course that i've been building alongside building my own um building this out
so that's one that will come out oh god i hope it comes out by the end of the year but it has
basic payments how to do subscriptions how to build a shopping cart with sessions how to build
a store with a database so in the way i do it progressively four different projects but i
learned a lot just building that because it's doing payments is you know it's sort of not
complicated but it's also really icky how people do it and a lot of times there's a lot of
javascript which could just be done in a django form and so anyways this is kind of the course
i needed to feel comfortable building this out and doing it right in quotes and i think it will
help a lot of people because there are e-commerce courses out there but to me they just go they're
you know 10 hours long and they go way in the weeds and there's a lot of personal
customization that doesn't need to be there so this will be something that covers you know
builds you up and shows you look it's just have the product do the payment do the webhook you know
goes into webhooks and i i'm happy with how the webhooks portion is it's not crazy confusing to
me anymore but i think webhooks webhooks sounds very scary at first it is so anyway so so what
you know you're too shy to say this but i'm going to say like what's when you say you're
happy with it that means it's going to be like your absolute usual standard of
great canonical reference to right go back to time and again yes this is just how i do it right
it's going to be exactly that that that's that's the bar yeah good good good so i mean if i can
understand it then anyone can um so yeah so i have that um plans for other things i'm still
doing the newsletter django news newsletter with jeff that's been going out every week
yep that's the uh number one django newsletter the only one but the number one uh and you can
sponsor that if you want we have a link in the description below and i'll see you in the next
we have some sponsors but spots are we gonna have sponsors on the podcast as well
well we are you know maybe people notice we had um we had a sponsor um in the spring
mail trap and then we have some sponsors coming up for the fall and also ways on the website
people can reach out so yeah trying to cover costs a little bit and so if it's something
django specific you want to reach developers or companies it's quite a target audience right so
i mean if you if
it's very targeted yeah this is a this is a good opportunity for someone looking to reach the django
you know user base yeah yes that's an option it's on the website uh what else oh yeah and then i
guess the last thing's for me and then we'll let you talk about your stuff um also i've updated so
i have this awesome django repo that i do with jeff triplet that's still still maintaining still
curating um still growing and then django x repo which is a starter project a basic starter project
i've updated that to
i think i'd update that to 5.1 yeah just did that um so that sort of gets you started and
we've talked about you know there is a pipe dream of everyone thinks their own starter project is
like worthy of everyone else to use but doing so is a requires a lot of steps and you know the ones
that are out there like cory's sas pegasus are an immense amount of work so we shall see if anything
more comes to that because a lot of times and i say that because people ask for more advanced things
on django x and django x is a lot of times people ask for more advanced things on django x and django x
and i have my own version of you know what i use but to take that and then have the docs and
everything else required to make it user accessible is is like a book worth of work so i my i understand
people who work in an agency right who need to turn out projects regularly so they need a core
you know they need a project that they just this is our stamp a rubber stamp here's the beginning
project they're all the same we know exactly what i understand all of that what if i'm a starter
project in general what if i'm a starter project in general what if i'm a starter project in general
i'm not saying yours or picking on anyone in particular but they just end up getting more and
more and more things in them so that when you create the starter project there's so many files
so much to see so much to do you can't really navigate it um i it's the under the understanding
piece um and i get that i mean in every framework there's some version of a sas starter where someone
says i need to you know i have something i want to charge for and i'll kind of backfill the
understanding a little bit i i definitely understand that um i guess i've always
i take a teaching first perspective you know i did django x god six seven years ago because
django cookie cutter which is fantastic to me was overwhelming um i mean i think i only now
mostly can wrap my head around it and yet rote beginners use it and but you know that's fine
they just want to get started and they'll kind of learn that stuff later but um yeah anyway so
django x is is kind of where i where i'm at and people who want more advanced things i usually
just say you know you can fork it and you know you can fork it and you can fork it and you can
go for it and it's deliberately very minimal um but but gets you up and going like it just what
you need no more right rather than everything you could possibly have which sometimes is the
temptation until we have that master toggle in django where you go from local to production
right that's that's one of the other the myth the mythical thing where you'll be able to
do that i don't know if that's ever going to happen but yeah who knows okay all right so
carlton so you so let's start with stack report okay this is this new newsletter you've
yeah you've been doing yeah so it's about i'm about five months in something like that so i
decided to just try something slightly different and so what it is is the monthly um email um it's
long form so it's like you know it's it's a bit of an effort to write and it's a bit of an effort
to read but it's you know it's slightly deeper than just the shorter blog post type type content
so it's a long form essay on you know everything to do with um software development or django or
whatever done estimating um locality behavior growing your business logic in django and
django um the user model we did did this month in other ones other topics will will come um i've got
ideas for um what it means to be batteries included where we take take that for django
um i've got oh
lots of ideas about what what over engineering means there's a kind of nice little
we was talking jango about batteries um about using boring technology right this idea about
boring technology in the known tech and there's a there's a counterpoint to that from some of the
you know let's call them big brains in the community who that they kind of think of it
as a sort of anti-intellectualism almost and so there's this this there's this really interesting
trade-off between you know what we've on the show talked about using boring tech and the money
stack and all these these things that we like versus well hang on but what uh is that is that
sort of ludditism is that holding back progress or and how you trade those two off and i've got
views and i've you know i've obviously got take because i'm constantly experimenting with new
things but do i wheel them into production first day no i don't so you know maybe i'll do an essay
on that this is i mean this is this is a very distilled you know your decades of experience
time as a jango fellow and your deep thoughts but
well laid out and yeah they're sort of essay you know and i i suspect for you i mean tom christie
has a number of essays he wrote back in the day that you know he you refer to as heat death of
the universe and this is to me this is kind of your version of that right this is sitting up and
saying okay i i have thoughts on these things and let me let me present them and as nuanced a way i
can um so it was invaluable i mean even for me who if i need to i can ping carlton you know this is
him like distilling it right
it's like him putting some thought into it and be like okay this is my thought on
a user model i'm brushing now but yeah no i mean so it is it's more considered it's deeper and
it's a premium thing so that like i've asked people to um pay for either five bucks a month
or 50 bucks a year you can you know get two apps at two issues free and i thought about that everyone
was always like i'll do github sponsors like and i i kind of yeah okay i like github sponsors but
you don't really get anything for it there's no incentive for anyone to do it so i'm like okay
let's call it it's
exactly the same as github sponsors but you'll get you know my condensed thoughts and there's
two or three um free issues i might keep make the odd one free if it's more wider
usage but most of the um issues will be to premium subscribers only and it's just a kind of way of
saying you know if you like the work that i do on my open source on django and the other open
source projects in the django community if you want to help support you know me being on the
podcast all the time then you know take up a subscription to the stack report and that's you know
your way of feeding back and you'll get you know my considered opinions after all these years of
software engineering so that's that's going well um not a billion sign ups by any me any measure
but you know people are signing up and um they're being very um nice about it so that's that's good
yeah well and it's material right i mean a certain point it just helps sometimes to be like you know
what there is some money coming in when you're sitting there like do i take that extra time on
you know it sort of pushes out the burnout of open source and then of course it's also a nice
impetus for to take the time to really condense your thoughts where you know i certainly have
this i probably over index on just pumping out a free tutorial when it's like well but i really
should be doing a paid thing right there's a there's a balance there so at least having
something that's in the paid bucket is important for longevity but yeah and it's making a commitment
to myself and making a commitment to my subscribers that i'll turn up each month and write that thing
so they've been literally meaning to write this thing about um about where to put your business
logic in general for four years or more you four five years however long it was and i finally got
down to doing it and it's only because i said right okay i'm going to make this commitment
to write this longer piece once a month at the end of the month every month and
you know allow people to subscribe if they're interested in that so that it's i'm really
enjoying it people are being very um complimentary they're enjoying the saying they're enjoying them
they're reading it and so i'm happy um and that's good and then beyond that what have i been doing
i've been working on neapolitan which is my quick crowd views for django um they've been going very
well uh what can i say i'm they've utterly changed the way i write django um it's not
just neapolitan it's the combination of neapolitan with htmx with django template
partials which is the other package i've been working on but they've i've hardly used a built-in
class um class based view one of the generic built django's built-in generic class issues i've
hardly used those at all i might use a simple template view i might um write a a view subclass
myself but basically beyond that it's all neapolitan and it's just like ah this is what
i wanted um and the bottom line is like you write a list view because you want to list your your
your bookmarks then you write a detail view and then you write a create view and then you write an
update view and then you write a delete and they're all they all use the same get query set
same filtering to the current user and you end up having to either put that into a mixing
or re-duplicate it across all the classes whereas with neapolitan you've got that get query set
method in one place and then as you grow but maybe you think oh no i'll spin this little bit off into
a separate view or i'll spin that off into a separate view but it gives you what i really
like about it it gives me this kind of um workspace where i can just bash stuff out and can be horrible
it can be you know when you first write something you've got no idea what it's going to look like so
do it all in the view and then you think oh no i can move that into the view into the form and that
would tidy that up okay i'll move that into a manager method but that first pass i know it's
all contained within this this this name space of the of the crud view and it's like brilliant
i'm going to keep it all in there until i see the patterns emerge and that
i've just found so powerful and so empowering and so enjoyable well maybe that's the next post
after your logic one is just to put some put some code on it and be like you know here we go
yeah yeah i mean maybe i mean it's always really embarrassing showing the first
that first pass where it's literally i just i've been putting out code since i was
pre-noob i mean it's just i think it's okay no yeah i mean i get that and
you know the business logic post i gave a good example of where you start something in um in the
view and then you move it into the form and then you move it into a magic method and then yeah
maybe pull it off your managers because you need a service layer because you're that advanced i mean
you know that's like the advanced version of my uh django hello world five ways it's like logic
five six ways which yeah i still think that's i still need to figure out what to do with that
post or make a video or because if you can you know it's like if you can understand that around
hello world then you really understand how views and templates and urls work together in the same
way that if you can move the logic around with some fluidity it just opens up seeing django is
this defined thing that you can manipulate as opposed to this unknowable blob that it can
definitely feel like for people and we spend a lot of time arguing about like you know we
have these debates about function-based versus class-based views and things but the bottom line
is that the the the actual underlying logic is you know mathematical it's isomorphic it's the same
logic right it's the same tr it's the same transformations that you've done and so the the
mapping you put on it whether it's wrapped in a function-based view or wrapped in the classroom
that should fade away that's irrelevant right but how to express that i need more advanced math it's
like the human wrapping right because i mean it's not even obviously the computer doesn't care but
django doesn't care like all these so many of these constructs are just just for us humans you know
like why do we have apps like just because it's a little easier to to reason about like django
doesn't care and that's why i'm excited
yeah some people don't use apps you know there i said it some very senior people don't
use apps well i've i've quite gone to this this single folder model where you just have everything
in one there you had to one up you know yeah no but i know but exactly this is not like just start
with a single folder make that folder the app the project folder the app and then put your models.py
there and it's like okay that grows an awful long way and eventually you're like oh you know i will
have a separate app for the cms which is nothing to do at all with my business logic and you have
your wag sale stuff in a separate app which is then if you want to extractable directly to a
separate project and you can you know wait how's got tooling for exporting your stuff and from one
database and importing into another and that that's all good but this is why i'm excited by
the the for your django for beginners where you've brought in the function-based views
because the the web problem is about turning http requests into http responses and if you can teach
that to a beginner then you can empower them with these more you know with the class-based views
which are more powerful that but they're they they're more powerful by obscuring some of what's
going on underneath and if they've got that understanding and bring them with them then
they are a richer developer and so you're giving them that yeah and i i resisted this for a long
time but i think just the the teaching component of it wins out and so i try to strike that balance
so anyway the other thing i've been doing is um template partials which is this yes yes this is
for use with htmx um and it gives you these reusable named um parts of your of your template
so say you've got a list of bookmarks and you want to just re-render an individual bookmark whether
you can wrap the section just the section of that template in a partial and then you could say right
i want to i just want to load that partial and it's integrated with the template load and it's
been very well received and it's again the combination of neapolitan plus htmx plus
template partials the three of them together is kind of what's going on in the template partials
it's kind of it's just such a rich combination i'm just having massive fun with it now is the one
that yeah might get into a future version yeah so i'm hoping to get it into um django so i've got
i'm working on the pull request now hopefully i'll get it in before this autumn so we can get it in
for 5.2 but if not i'll definitely for 6.0 um and it was it's just a template tag basically but it's
the it's the it's not just the template it's the comp it's the integration with the template loader
so that you just add like a um you know like an a text fragment an identifier fragment identifier
on the end of a um htm dot html hashtag um this header which is the anchor let you go to the anchor
you just do that for the named partial to the template loader and it goes it fetches the
template and then it goes oh that is that partial defined and if it is it will give you just that
partial back and so your view logic just remains unchanged and it's wonderful and it's it's yeah
it's simple views simple views i you know good well what you don't want to do is have to rewrite
your view logic just to change the template basically you want to just set the template name
on the on the self.template name equals this and then the rest of it needs to be restrained
needs to be the same and then a template view will return a template response which is delayed
rendering and other nice niceties about it but if you end up changing your view logic you end up
changing the response type as well and it's like that's an awful lot of grief that you had to go
into to just use a partial rather than the the full template so template partials addresses that
so speaking of putting logic in projects one thing i i updated my django all off tutorial
if anyone wants to check that out because a mistake everyone makes and for some reason
it's not in the all off docs is you need sites set up so time and time again even i make that
mistake of you know so sites is this it's almost a historical thing at this point i don't know how
many people actually are running multiple websites off of django project maybe people
will come out of the woodwork for that one but it's there are these
yeah sites kind of crops up in sometimes interesting ways that you may not think of
and anyways all off that's one of the classic mistakes if you're getting a funky error i should
probably just do a post on this is the error you're getting because you didn't add sites
for all off yeah anyways i'll do that that's a common beginner thing even i you know i wrote
the all off tutorial years ago and i was just trying to do it from scratch based on the docs
and i was like god what is that error and then i was like oh yeah that's that's what that is
anyways that's what learning feels like but i think um the last thing is mentoring mentors right
you have thoughts on this yeah so this auto i'm just an experiment so i i was thinking about the
steering council elections that are coming up for um not now but but like after the five after 5.2
so december the end of the end of the year kind of time but that's when the 5.2 development cycle
will start no that's what that's when it will finish so 5.2 will be released so april time
there's going to be a lot of people who are going to be going to be going to be going to be going to
be an election for the for the steering counts jango steering council for 6.x for the 6.x cycle
6.0 6.1 6.2 and last time it didn't go well because we didn't advertise it very well we just had a big
board election where we had like 30 um people stand and that was too many and everyone was a
bit overwhelmed by the number of people and so we didn't really advertise the steering council
then only four people stand stood which wasn't enough and it wasn't for five spots and it's like
oh ah so
it's like can we beforehand like try and get some excitement about this so we actually get a decent
panel of people running and it's not just so there's one one aspect is getting more people
the other aspect is trying to get look at diversity um it's like trying not just have
white men because as much as we're all great and whatnot it would be nice to if the steering
council represented the jango community more widely um and then i was thinking about okay so
what can we do about that and what can we think about that and what can we do about that and what
can we encourage people who aren't the the usual demographic to stand but then i was thinking
through maintainers because it'd be nice it is important the steering council has a technical
role right so it's important that at least one or two or three members of it are actively involved
in the maintenance of jango because they do have to speak on technical questions now i don't think
all five need to be because it's good to have people like you know a commercial interest in
jango i run a i ran a jango shop or i'm part of a jango shop and we find this or um you know i
think people that are involved in the support side so in the education side so i think that's
like you know writing books or helping on the forum or helping on the discord or you know
seeing the problems that come up that's an important role on the steering council as well
so it's not just technical but there is this kind of technical requirement for at least one or two
members you know say two i think kind of two at the minimum um but then put those two thoughts
together about diversity and the technical requirement and you look through the package
ecosystem and it's mostly men doing the men the the maintainers and we we have more non-governmental
women doing the work and we have more non-governmental women doing the work and we have more non-governmental
white men contributors through projects like janganauts but what we're not seeing is that
leading into well you know actually do you know what of the jazz band packages half of them
are maintained by you know women or half of them half of the that's just not the case we're nowhere
near that and so that's a real failing and so i thought well okay maybe we could try and help
prospective maintainers so just for the the the art for this this next quarter coming up until
the end of the year i'm doing experiment if it goes well i'll carry on into the
new year i'm going to put thursday afternoons aside and be online and do my own maintenance
and but be available in case of either to be a support group for other maintainers but more in
mind if you've in the janga community and being a maintainer kind of appeals to you well maybe be
able to give a bit of mentoring a bit of advice on that and most of it is well you know maintaining
is just contributing but on an ongoing basis right it's but just to try and be available
and try and see if having a kind of an office hour a support group for maintainers a bit of
mentoring for prospective maintainers see if we can move the needle see if we can help some people
make that jump from well i've contributed to django or contributed to packages in the
django ecosystem too oh do you know what i could take this package on and as the
hopefully we could get some people on board but the other side of it is that packages are
massively under maintained right so if you go through the jazz band packages yes they're still
alive but they're kind of on you know oh every eight months to do enough to get it updated to
the next one and not too many big bug fixes get merged not too many things get done lots of
projects are in kind of stasis and that's okay because they're very stable they're mature they
do their thing they don't necessarily need to grow but if we were to find a way of smoothing
the on-ramp for maintainers i think we can make a big difference to the sort of viability of the
change i feel like i've been banging this drum for years but so how will people find out about
these sessions where should they look to be well there's a good question i haven't quite decided i
only decided to do this um over the last few days and i'm going to start it's only the next week
or this week i'll start so we'll let people know in the podcast the newsletter will let
them know you'll put a post out but but follow me on foster don um i'll probably hang around
say on the django discord in the packages channel because that seems like a good place
for it that's safe yeah on the forum but it's gonna it you know i don't know i don't expect
a billion people to turn up if a billion people do turn up i've got no chance of of helping that
but i'll try and be online i'll try and be available to answer questions and i'll try and
do the odd post about okay so you want to be a maintainer what does that mean and just flesh out
some content i've had yeah like thinking about that um well i know that we're gonna have tim
tim schilling on um this fall and he's been very involved with
with jazz band and also he has this django commons where he's making moves around that around the
viability of main maintenance um so we'll yes let him speak more on that but there are it's it's a
common problem it's not a new problem out there yeah and my f my efforts are mentoring maintainers
may will end up under the django commons umbrella that would be an obvious and and perhaps good good
place for it um like i i had this workshop that i ran at sprints several years um to get started
so i need that to become a freestanding thing and i can't just that can't require me to be at the
sprints to deliver it so i need to put that into something which isn't just it's on a github repo
that i've got but if that was part of the django community that somehow either django commons or
jazz band or under the django umbrella it would be more like sustainable more yeah maintainable like
you can't just rely on me because uh yeah i'm here now and i'll be here for the the foreseeable
future but it needs it needs to be a part of the django community and i think that's a big part of
it it needs some to be something that people can run themselves and so yeah the bottom line is well
it's an experiment i don't know if i have the answers to how do we smooth the on-road for
maintainers because the bottom line is you're asking people to give labor for free um and so
the the big the big issue there is can you right as as we've discussed though it comes with if
you're the maintainer of xyz it makes a lot easier to get hired to have you know be taken seriously i
mean there are these other benefits to it but it is first and foremost you're donating your time
and we do have this these cohorts now there's two i think two cohorts the third one starting up of
these django knots who've been doing things such as well doing adding to core but also contributing
to the django news newsletter like covering that new and django section and so there is this growing
group of people who i hope are looking for that next step of ways to contribute to django so might
might be an on-ramp into these other areas but we can
ask sarah boyce about that next week yes i mean exactly that is a like what okay so what if i
wanted to do more what would i do well okay i'm in a position where i can answer that question um
so so we'll see i don't know how it's going to go but yeah if you find me on mastodon or you find
me on the discord or you've you can send me an email i'm not hard to track down um i don't know
exactly but more or less i'll be online maybe i'll do a video call that we can log in to
i know um some people have done a kind of working office hours type working group thing online jeff
jeff triplett has that on fridays and that's worked out i think really well there's a group of
a core group of people who show up and it can vary in size but it's it's more than just jeff
so yeah and it's just to add a bit of camaraderie if nothing else like sometimes sometimes doing
these things by yourself can feel lonely and well okay you know there's no magic to it necessarily
you know if you feel like you're not alone it can help all right any anything else or have we
i don't know i'm the kids went back to school today finally so i'm just like
at last yeah last week for me yeah it's a it's a that's a big transition which this has been fun
this is a be a one-off we're generally going to have guests and probably be a little bit tighter
and more focused in our discussions but this is what we've been up to i'm excited to get you know
i'm excited for jango con to see everyone i'm excited to kind of get back into things and
with the kids off at school again with a regular schedule
it definitely makes my schedule easier and yours as well so yep look well anyway so we're basically
jango chats back we're gonna do it again yes and so the plan is every two weeks until probably
the summer take the summer off but we have lots of guests lined up and i'm looking forward to it
yeah it helps it you know helps us with the community too just to i know it helps people
who listen but just for us too to talk to everyone and hear what they've been up to and then
sometimes you see a package or you see really good work someone's doing and it's like well who's
who's that person right what's what's their story so as ever jango chat.com all the usual places
and we'll see everyone next week bye-bye join us next time bye-bye