← Back to Show Notes

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