WEBVTT

00:00.000 --> 00:12.000
And now I will hand give the floor to Emma, who will give her talk on Jango Atman.

00:12.000 --> 00:13.000
Thank you.

00:13.000 --> 00:14.000
Thank you.

00:20.000 --> 00:24.000
So hi, my name is Emma.

00:24.000 --> 00:27.000
I've been doing Titan for a long time.

00:27.000 --> 00:29.000
Recently, I do more Jango.

00:29.000 --> 00:32.000
I am a member of the PSF, the DSF.

00:32.000 --> 00:36.000
And I'm currently a member of the Jango steering console.

00:36.000 --> 00:38.000
But this is not a steering console talk.

00:38.000 --> 00:40.000
This is my talk.

00:40.000 --> 00:43.000
I also worked for a small company that I confronted.

00:43.000 --> 00:44.000
Left it.

00:44.000 --> 00:45.000
We're in Belgium.

00:45.000 --> 00:52.000
We do mostly heavy data based web application using Jango.

00:52.000 --> 00:58.000
And for bigger projects, I also work with Squats, who gave me these t-shirts.

00:58.000 --> 01:06.000
Squats is the teams of teams where you can basically hire a team and just play what you need.

01:06.000 --> 01:10.000
Since this is a Python demo, I'm first going to introduce Jango.

01:10.000 --> 01:14.000
Who doesn't know what Jango is?

01:14.000 --> 01:19.000
So I have three people into the form of president who doesn't know.

01:19.000 --> 01:26.000
Jango is the web framework for perfectionist's deadline.

01:26.000 --> 01:31.000
It is the most popular, so far, I think it's still the most popular.

01:31.000 --> 01:35.000
Web framework in Python, it's been around for 20 years.

01:35.000 --> 01:39.000
It's very mature, stable, and it's got a good community.

01:39.000 --> 01:43.000
And it also comes as batteries into the things like authentication.

01:43.000 --> 01:46.000
You where I am, everything like that.

01:47.000 --> 01:50.000
It's also used across open source projects.

01:50.000 --> 01:56.000
I think it's like authentic, paperless, but also big names like nasus,

01:56.000 --> 01:59.000
GPL, and so forth.

01:59.000 --> 02:05.000
And one of the most light batteries of Jango is the admin.

02:05.000 --> 02:09.000
And so for the two people in the room, we don't know what Jango was.

02:09.000 --> 02:12.000
This is what the admin looked like.

02:12.000 --> 02:19.000
The admin lets you create a crowd really quickly on any table in your database.

02:19.000 --> 02:22.000
Jango supports many database backends.

02:22.000 --> 02:30.000
And so if nothing else, you can use that to reverse your database if you don't have a correct client.

02:30.000 --> 02:36.000
And it's better than most clients, because it's also this relationship and things like that.

02:37.000 --> 02:39.000
Oops.

02:39.000 --> 02:44.000
And to write such an admin, it's quite easy.

02:44.000 --> 02:50.000
A few lines of code, and you know have something that lets you explore your data.

02:50.000 --> 02:56.000
Dupe thread, 80% of what you will probably want to do with one single table.

02:56.000 --> 03:02.000
You can do that in a few lines of code.

03:03.000 --> 03:07.000
What's not so great is that Jango is 20 years old.

03:07.000 --> 03:10.000
The concept of the admin is also 20 years old.

03:10.000 --> 03:14.000
And so there are things that for not built into the admin.

03:14.000 --> 03:19.000
If you want to do a drag-and-fout, if you want to have nested in lines,

03:19.000 --> 03:25.000
if you want to have extra actions, not just edit and delete with your staff.

03:25.000 --> 03:28.000
There are third party packages for all those.

03:28.000 --> 03:34.000
But the problem is that when you start to get too many third party packages in your Jango application,

03:34.000 --> 03:37.000
you start sometimes to get conflicts.

03:37.000 --> 03:40.000
And there are really more complicated stuff.

03:40.000 --> 03:44.000
So if you want to change the layout of your form,

03:44.000 --> 03:49.000
well, most of the time, the best way to do that is just to do it by hand.

03:49.000 --> 03:55.000
The thing is with the admin, is that a lot of the admin code is in two places.

03:55.000 --> 03:58.000
It's a changeless view and the change form of you.

03:58.000 --> 04:04.000
And those two things are buried deep inside the admin.

04:04.000 --> 04:08.000
And it doesn't really look like anything else in Jango.

04:08.000 --> 04:15.000
If you want to take a step back, the Jango admin is a framework inside of Jango.

04:15.000 --> 04:16.000
It's its own thing.

04:16.000 --> 04:22.000
If you know how to do filters in the admin, and you want to do filters in your regular views,

04:22.000 --> 04:24.000
well, it's completely different.

04:24.000 --> 04:28.000
You, your best bet is to install the third party package,

04:28.000 --> 04:30.000
because it's not there.

04:30.000 --> 04:35.000
Jango is filtering, but only in the admin.

04:35.000 --> 04:40.000
And the community knows that there are a few issues with the admin.

04:40.000 --> 04:46.000
Last year, the steering console introduced the new features people,

04:46.000 --> 04:49.000
which is a place where we can ask for feature,

04:49.000 --> 04:57.000
idea, it's a repo and GitHub, it's organized in a convenient way to follow where the things are along.

04:57.000 --> 05:03.000
And about 30% of the issues that were open there are about the admin.

05:03.000 --> 05:08.000
And there is one issue, specifically, issue number 70 that was open,

05:08.000 --> 05:12.000
that kind of got my eye and sent me down its rabbit hole,

05:12.000 --> 05:17.000
and because of issue 70, this is the reason why I'm standing here today.

05:17.000 --> 05:21.000
I will come back to the rabbit hole later.

05:21.000 --> 05:29.000
And not only the community knows, but the community has been trained for at least 15 years.

05:29.000 --> 05:39.000
There's Django admin too, which is factory revs, Django standard views.

05:39.000 --> 05:45.000
The problem with Django admin too is that it's still very close

05:45.000 --> 05:50.000
in a concept to the regular admin, and it's also been abandoned,

05:50.000 --> 05:54.000
and Django 2.2 is the last version in supports.

05:54.000 --> 05:57.000
Next to that, you have things like Drap Ali in Jet,

05:57.000 --> 06:01.000
that are mostly skins over on top of the admin,

06:01.000 --> 06:04.000
but it's extra functionalities.

06:04.000 --> 06:08.000
And then you have people who do things completely differently.

06:08.000 --> 06:14.000
You have Wactel that is CMS, one of the most successful CMSs is built on Django.

06:14.000 --> 06:19.000
But it has its own admin, and some people have taken that admin,

06:19.000 --> 06:22.000
removed everything that was CMSC from the admin,

06:22.000 --> 06:25.000
and used that instead of Django admin.

06:25.000 --> 06:30.000
And then there are people who just go outside of spite and altogether

06:30.000 --> 06:37.000
to use Django with rest framework, and they built a JavaScript front end.

06:37.000 --> 06:45.000
I wrote a library to do that, and this is one of the forms

06:45.000 --> 06:49.000
that I'm able to manage with that.

06:49.000 --> 06:55.000
And I would love for the admin to be able to do that out of the box.

06:55.000 --> 07:00.000
And it's not just a community, also a side of the community.

07:00.000 --> 07:03.000
Other frameworks have been evolving.

07:03.000 --> 07:07.000
20 years ago, while there was frails, there was Django,

07:07.000 --> 07:13.000
and there was not much else in terms of having an admin.

07:13.000 --> 07:21.000
And even Django, in Django, seeing, hey, we're doing this because frails does that.

07:21.000 --> 07:26.000
But in the past five years or so, things have started changing,

07:26.000 --> 07:29.000
and the other frameworks have mostly caught up,

07:29.000 --> 07:32.000
but they're also starting producing new stuff.

07:32.000 --> 07:36.000
They're starting to introduce dynamic companies there.

07:36.000 --> 07:40.000
They're evolving, while Django is still evolving,

07:40.000 --> 07:42.000
but the others are there, you know,

07:42.000 --> 07:46.000
and they've put up in some areas they have gone further.

07:49.000 --> 07:52.000
So what does this mean for the future?

07:54.000 --> 07:58.000
I would love the future to be extendable, composable,

07:58.000 --> 08:02.000
and I would love the future of the Django admin to be just Django.

08:04.000 --> 08:08.000
What if when you write something for Django,

08:08.000 --> 08:11.000
you can also use it in the admin directly and vice versa,

08:11.000 --> 08:14.000
instead of having to deal with two different paradigms,

08:14.000 --> 08:20.000
that the admin framework inside Django and Django.

08:22.000 --> 08:27.000
So I kind of went into a rabbit hole, like I said,

08:27.000 --> 08:31.000
and I looked more at what would that mean?

08:31.000 --> 08:37.000
Well, it would mean that it would have to be built on Django's generic views.

08:37.000 --> 08:40.000
Thread operations, of course, should be supported,

08:40.000 --> 08:43.000
but they should not be anything special,

08:43.000 --> 08:48.000
and it should not be more special than publish or clone.

08:48.000 --> 08:52.000
And also everything should be composable,

08:52.000 --> 08:57.000
so you should be able to take different parts of the framework

08:57.000 --> 08:59.000
and put them together.

08:59.000 --> 09:02.000
And for that, plugins need to be key,

09:02.000 --> 09:06.000
and I like the Django admin that was first created

09:06.000 --> 09:10.000
inside a newsroom in the US for very specific purpose,

09:10.000 --> 09:15.000
try to think about the plugin as first citizens.

09:16.000 --> 09:19.000
And of course, it should be very familiar.

09:20.000 --> 09:23.000
So you put it in images.

09:23.000 --> 09:27.000
If we take the structure, that would be the Django views at the bottom.

09:27.000 --> 09:31.000
On top of that, you add some niceties, some UX,

09:31.000 --> 09:35.000
some websites, side bars, that kind of thing.

09:35.000 --> 09:39.000
And of course, there's not just visual things.

09:39.000 --> 09:42.000
You also have to handle things that throw behind the scenes,

09:42.000 --> 09:44.000
I permission and all that.

09:44.000 --> 09:48.000
And a way to put that together would be plugin,

09:48.000 --> 09:52.000
using something that is already well known

09:52.000 --> 09:57.000
and supported for the Django plugin is one of those.

09:57.000 --> 10:03.000
And the glue that would come and bring all of that together

10:03.000 --> 10:06.000
would be few factories.

10:06.000 --> 10:09.000
So you register a third-party application,

10:09.000 --> 10:12.000
using the plugin interface,

10:12.000 --> 10:15.000
and then when you're looking at the list view,

10:15.000 --> 10:18.000
Django knows that for your list view you're using this,

10:18.000 --> 10:20.000
that and that plugin.

10:20.000 --> 10:24.000
And it brings out everything together.

10:24.000 --> 10:29.000
And of course, I said earlier, this should all be familiar.

10:29.000 --> 10:33.000
So back to Django admin definition.

10:33.000 --> 10:36.000
This is what an admin definition looks like.

10:36.000 --> 10:41.000
And when I went into that private hole,

10:41.000 --> 10:45.000
I wrote a whole proof of concept, right?

10:45.000 --> 10:48.000
And so this is Django admin do.

10:48.000 --> 10:52.000
And this is what this looks like in Django admin do.

10:52.000 --> 10:57.000
Did you spot the difference?

10:57.000 --> 11:02.000
The only difference is the imports.

11:02.000 --> 11:05.000
So this would stay very familiar.

11:05.000 --> 11:08.000
It would not break anything that you know about yet.

11:08.000 --> 11:11.000
But once you have changed those imports, you can go further.

11:11.000 --> 11:17.000
And you can enhance your admin with things that have been included,

11:17.000 --> 11:20.000
that are not possible right now with Django core admin.

11:20.000 --> 11:22.000
So for example, instead of using just strings,

11:22.000 --> 11:27.000
you can use colon objects and give more information about your colon,

11:27.000 --> 11:30.000
like change the label or things like that,

11:30.000 --> 11:33.000
which is say it's sortable or filterable.

11:33.000 --> 11:37.000
Or you can, for your form, you can also use a layout object,

11:37.000 --> 11:42.000
just using a list of fields or fields like this right now.

11:42.000 --> 11:47.000
But that's nice and theory.

11:47.000 --> 11:50.000
But would that really work?

11:50.000 --> 11:55.000
Yes, it would really work if I can get my mouse to put that into full screen.

11:55.000 --> 11:59.000
This is a demo of Django admin do.

11:59.000 --> 12:03.000
And when you look at it, you might not see anything.

12:03.000 --> 12:06.000
You might think this is just a Django admin.

12:06.000 --> 12:08.000
And this is good.

12:08.000 --> 12:10.000
This is what we want.

12:10.000 --> 12:16.000
We want it to be funnier to look at something that you know.

12:16.000 --> 12:20.000
And here this is just Django admin.co.

12:20.000 --> 12:25.000
We don't any of the plugins.

12:25.000 --> 12:30.000
And yeah, you see that it works.

12:30.000 --> 12:32.000
And it's not in special.

12:32.000 --> 12:34.000
But here you can see that there is a difference.

12:34.000 --> 12:36.000
There is this change password action.

12:36.000 --> 12:38.000
Right now in the, in the current Django admin,

12:38.000 --> 12:40.000
when you have users, you want to change password.

12:40.000 --> 12:44.000
You have to edit the user, then you have a link to the change password form.

12:44.000 --> 12:47.000
Here you could have that directly as an action.

12:47.000 --> 12:50.000
Because once again, other actions is not just edit and delete.

12:50.000 --> 12:55.000
Other actions list have the same status.

12:55.000 --> 12:58.000
You can find them on any thing here at the bottom right.

12:58.000 --> 13:00.000
You have to delete and you have to edit.

13:00.000 --> 13:04.000
And you have changed password that are accessible.

13:04.000 --> 13:21.000
So here I'm going to delete the user.

13:22.000 --> 13:26.000
And so one of the things that I was telling you about something

13:26.000 --> 13:30.000
that for some reason, very important to me is to be able to have different columns

13:30.000 --> 13:34.000
easily next to each other when you're doing a form.

13:34.000 --> 13:36.000
So this is the case here.

13:36.000 --> 13:41.000
It's just a simple Django form, but you get more flexibility.

13:41.000 --> 13:48.000
That's what you do get out of the box with just no plugins.

13:48.000 --> 13:53.000
But now we're switching to dark mode.

13:53.000 --> 13:55.000
Dark mode is Django admin.

13:55.000 --> 13:57.000
With the recommended plugins.

13:57.000 --> 14:01.000
That's Django filter that Django from set.

14:01.000 --> 14:07.000
So here we can see that you've got all the things that you're used to having in Django admin.

14:07.000 --> 14:14.000
On the right, you've got filters, you can search your views, you can search your list.

14:14.000 --> 14:19.000
The plugin, so the search on the top right, is provided by the core.

14:19.000 --> 14:23.000
But the filters is provided by the filter plugin.

14:23.000 --> 14:29.000
And those two, they work together without any issue.

14:29.000 --> 14:34.000
The form here is rendered by Django from set.

14:34.000 --> 14:35.000
Django from set.

14:35.000 --> 14:38.000
If you don't know, it's a library for doing forms in Django.

14:38.000 --> 14:39.000
Django is very powerful.

14:39.000 --> 14:44.000
You can do things like conditional display in that kind of thing.

14:44.000 --> 14:50.000
And other than it's dark, you probably wouldn't have seen the difference if I had

14:50.000 --> 14:53.000
Untiled you, it was rendered by another library.

14:53.000 --> 14:55.000
And this is the idea.

14:55.000 --> 14:56.000
It should be transparent.

14:56.000 --> 14:58.000
It should stay familiar.

14:58.000 --> 15:03.000
It should not bring anything different.

15:03.000 --> 15:12.000
So here I'm going to be trying the filters.

15:12.000 --> 15:15.000
This is very powerful.

15:15.000 --> 15:23.000
And yesterday again somebody was saying, yeah, but the problem when you start to use plugins and plugin

15:23.000 --> 15:26.000
is that you don't always know what's happening.

15:26.000 --> 15:31.000
You don't know what plugin introduces what into your view.

15:31.000 --> 15:35.000
You have a hard time allocating the code and so on.

15:35.000 --> 15:39.000
And so with great productivity.

15:39.000 --> 15:47.000
And because of that, Django had me do it comes with another plugin that documents.

15:47.000 --> 15:53.000
Every view that has been created that has been assembled from your base view and all the plugins

15:53.000 --> 16:00.000
that come over that, it creates a full documentation website with everything.

16:00.000 --> 16:07.000
And it looks a little bit like CCBV, except that it's focused on the plugin system.

16:07.000 --> 16:10.000
It tells you, yes, this is the base view.

16:10.000 --> 16:12.000
This is a base view class.

16:12.000 --> 16:17.000
If this plugin that plugin and this is where each function code, which matters come from,

16:17.000 --> 16:21.000
each property comes from and how they ended up there.

16:21.000 --> 16:28.000
This is a plugin that generates a website, but there's also a common live version that can give you

16:28.000 --> 16:35.000
a few smaller details about that.

16:35.000 --> 16:39.000
In last year, somebody in this room asked,

16:39.000 --> 16:46.000
why did we still need to rest third-party application to do rest in Django?

16:46.000 --> 16:49.000
And so I wrote an article saying that you did not.

16:49.000 --> 16:53.000
And then I wrote a library that did it, so it defeated the purpose.

16:53.000 --> 16:58.000
But I thought, should I try to break this?

16:58.000 --> 17:00.000
And so I wrote a plugin.

17:00.000 --> 17:06.000
I made a plugin version of that library that can stick into Django admin.

17:06.000 --> 17:13.000
And so you can, why am I speaking so fast compared to my slides?

17:13.000 --> 17:20.000
I made a plugin that's just asked rest to anything from Django admin.

17:20.000 --> 17:22.000
So now you have rest.

17:22.000 --> 17:25.000
Let's just like in the other action.

17:25.000 --> 17:29.000
Getting, doing a get, doing a get-feed quest with JSON.

17:29.000 --> 17:35.000
You're getting exactly what you would get with any other rest framework.

17:35.000 --> 17:41.000
And just to test it, I also, because I think it's still cool to do to do applications,

17:41.000 --> 17:44.000
when you want to do JavaScript and rest.

17:44.000 --> 17:52.000
So I did a small-to-do list application that uses that trust framework from Django admin.

17:52.000 --> 17:57.000
And I reload it several times just to show you that it saved some disk in the database,

17:57.000 --> 18:05.000
not just JavaScript metric.

18:05.000 --> 18:09.000
Yeah, that's it for that.

18:09.000 --> 18:13.000
So this is the list of the plugins that you saw at work.

18:13.000 --> 18:21.000
And this shows, this is to show that plugins have been designed into this proof of concept,

18:21.000 --> 18:24.000
as being first-class citizen, even the core.

18:24.000 --> 18:27.000
It's Django admin, the plugins core.

18:27.000 --> 18:31.000
Everything is plugins.

18:31.000 --> 18:34.000
The other thing is that you can try this without any risk,

18:34.000 --> 18:37.000
because it's another application altogether.

18:37.000 --> 18:40.000
So it can live right next to your admin.

18:40.000 --> 18:43.000
And if you want to try it, and if you want to migrate,

18:43.000 --> 18:49.000
you don't have to switch from the stack admin to Django admin.

18:49.000 --> 18:56.000
You can just do one model at a time and start your migration.

18:56.000 --> 19:04.000
Of course, the admin itself is nice, but there is a whole lot of other things around the admin.

19:04.000 --> 19:07.000
There is a full ecosystem of applications.

19:07.000 --> 19:12.000
And some of the third-party application will be easy to migrate.

19:12.000 --> 19:17.000
Some will be less easy, and some will be hard.

19:17.000 --> 19:21.000
The easy ones are the ones that either not necessary anymore,

19:21.000 --> 19:26.000
or don't do anything visually or that kind of thing.

19:26.000 --> 19:30.000
And the more visual things that a third-party application is going to be doing,

19:30.000 --> 19:34.000
the hardest is going to be to migrate it right now,

19:34.000 --> 19:38.000
because it's a whole different system.

19:38.000 --> 19:43.000
And under the hood, even if the API, the final user's API is the same.

19:43.000 --> 19:47.000
Under the hood, we got a threat of the changes view.

19:47.000 --> 19:50.000
Of the changes view, of the change from view,

19:50.000 --> 19:54.000
those concepts that are only part of the current admin,

19:54.000 --> 19:56.000
we got a threat of those.

19:56.000 --> 20:01.000
So, teams, for example, I would not advise anybody to do a team right now,

20:01.000 --> 20:06.000
except maybe some CSS customization, because the templates are changing a lot.

20:06.000 --> 20:13.000
Four things like Django Reversion that adds a sidebar in the admin.

20:13.000 --> 20:17.000
Well, we have a plugin that the sidebar thinks,

20:17.000 --> 20:21.000
but this will have to be translated to be compatible,

20:21.000 --> 20:23.000
which is sort of the plugin.

20:23.000 --> 20:26.000
It's going to take a bit of work.

20:26.000 --> 20:32.000
So, if there is enough success in people like the idea,

20:32.000 --> 20:37.000
this is roughly the roadmap, that's a project like that we need.

20:37.000 --> 20:41.000
It decor itself with still needs several months.

20:41.000 --> 20:42.000
Mostly clean up.

20:42.000 --> 20:44.000
I did the architecture.

20:44.000 --> 20:47.000
I delegated a lot of the codes to a robot,

20:47.000 --> 20:50.000
so no, I really have to do a lot of clean up.

20:51.000 --> 20:57.000
Taking care of the third or key positioning is important.

20:57.000 --> 21:00.000
But most importantly, if this goes forward,

21:00.000 --> 21:04.000
we will have to accompany the whole community,

21:04.000 --> 21:08.000
help people do the transfer, and not just say,

21:08.000 --> 21:10.000
hey, this is a new admin.

21:10.000 --> 21:12.000
No, you're on your own.

21:12.000 --> 21:16.000
So, this is going to be what's taking the most time.

21:17.000 --> 21:20.000
Unfortunately, time is money.

21:20.000 --> 21:25.000
And this is probably why, up until now,

21:25.000 --> 21:29.000
there is not been any change of doing something like this.

21:29.000 --> 21:33.000
Jacob Caton must say that it would take about a million-dollar

21:33.000 --> 21:35.000
to rewrite the admin.

21:35.000 --> 21:38.000
And that was 10 years ago before inflation.

21:38.000 --> 21:43.000
So, the DSF does not have money for that.

21:43.000 --> 21:46.000
The DSF barely raised 300K this year.

21:46.000 --> 21:50.000
And the DSF uses its money to maintain Django,

21:50.000 --> 21:52.000
not to add new features.

21:52.000 --> 21:56.000
The only feature that I'm aware of in Django

21:56.000 --> 21:59.000
that kind of got some funding with the migrations.

21:59.000 --> 22:03.000
And that was about 10 years ago as well.

22:03.000 --> 22:05.000
And this was brought from it.

22:05.000 --> 22:07.000
It was not funded by the DSF.

22:07.000 --> 22:11.000
But now, we have things like the severing textants

22:11.000 --> 22:14.000
and where people try to, of the Europe,

22:14.000 --> 22:18.000
if willing to invest money in open source.

22:18.000 --> 22:22.000
So, I'm thinking of maybe reaching to that.

22:22.000 --> 22:24.000
There's also other systems.

22:24.000 --> 22:25.000
Django is framework.

22:25.000 --> 22:29.000
There's proof that you can help other companies

22:29.000 --> 22:32.000
integrate the product into their own product

22:32.000 --> 22:34.000
and that they're happy to pay for this.

22:34.000 --> 22:38.000
Consulting time to do that.

22:39.000 --> 22:43.000
So, what could come next?

22:43.000 --> 22:47.000
We have, I said, we have some clean up to do this.

22:47.000 --> 22:51.000
More permission plugins to do more granular permission

22:51.000 --> 22:53.000
that was currently implemented.

22:53.000 --> 22:58.000
What we have is already more, has more choices already

22:58.000 --> 23:00.000
than the current admin.

23:00.000 --> 23:02.000
But we want to object a little permission

23:02.000 --> 23:05.000
to build permission, that kind of thing.

23:06.000 --> 23:09.000
We want to improve with a model,

23:09.000 --> 23:12.000
related model, functionality,

23:12.000 --> 23:15.000
internationalization, and much more.

23:15.000 --> 23:17.000
And if you're interested, if you want to try this,

23:17.000 --> 23:20.000
maybe your feature, maybe your feature you need.

23:20.000 --> 23:24.000
If you want to, go contact me after the talk.

23:24.000 --> 23:29.000
Because in order to move any further,

23:29.000 --> 23:31.000
this project needs you.

23:31.000 --> 23:33.000
It needs people to try the project.

23:33.000 --> 23:36.000
It needs people to give some feedback.

23:36.000 --> 23:40.000
It needs people to find bugs

23:40.000 --> 23:44.000
and find possible improvements.

23:44.000 --> 23:48.000
The best way is to give feedback is to either go directly

23:48.000 --> 23:52.000
on the project's repo or go on that issue

23:52.000 --> 23:57.000
70 on the new ideas repo.

23:57.000 --> 24:01.000
So, it looks like I finished in time

24:01.000 --> 24:04.000
and we have time for questions.

24:12.000 --> 24:13.000
Hello.

24:13.000 --> 24:15.000
Thank you for the talk.

24:15.000 --> 24:16.000
Thank you.

24:16.000 --> 24:19.000
I have a question that might be controversial,

24:19.000 --> 24:22.000
but you talked about core.

24:22.000 --> 24:23.000
Yes.

24:23.000 --> 24:26.000
Is there any chance that some of these core

24:26.000 --> 24:28.000
could be reused for a fast API,

24:28.000 --> 24:35.000
so that we could help and contribute for both communities?

24:35.000 --> 24:37.000
I said controversial.

24:37.000 --> 24:38.000
No.

24:38.000 --> 24:42.000
It's just, I don't know.

24:42.000 --> 24:46.000
I think maybe.

24:46.000 --> 24:50.000
So, this core, we believe that there

24:50.000 --> 24:55.000
would need to be a similar core for fast API

24:55.000 --> 24:58.000
and then have plugins that work for both.

24:58.000 --> 25:00.000
That might be a solution,

25:00.000 --> 25:04.000
but then how do you deal with the ORM and things like that?

25:04.000 --> 25:05.000
Yeah.

25:05.000 --> 25:09.000
So, fast API doesn't come with its ORM,

25:09.000 --> 25:12.000
but you could use, like, a small community or something.

25:12.000 --> 25:13.000
Yeah.

25:13.000 --> 25:18.000
Or you could actually use a Django ORM with fast API.

25:18.000 --> 25:19.000
Yes.

25:19.000 --> 25:20.000
It would work.

25:20.000 --> 25:22.000
And then it might work.

25:22.000 --> 25:23.000
It might.

25:23.000 --> 25:24.000
Thank you.

25:24.000 --> 25:27.000
You're welcome.

25:27.000 --> 25:30.000
I want more questions.

25:35.000 --> 25:36.000
Hey, Emma.

25:36.000 --> 25:41.000
I've put the API part of the project is really cool.

25:41.000 --> 25:45.000
To what extent do you think it would be useful

25:45.000 --> 25:49.000
in, sort of, large scale production code with,

25:49.000 --> 25:52.000
mainly API features, for example,

25:52.000 --> 25:54.000
is it your vision that someday it could replace

25:54.000 --> 25:56.000
the need for Ninja ORM framework?

25:56.000 --> 25:58.000
Or is it just something basic

25:58.000 --> 26:00.000
that's kind of a helper utility?

26:00.000 --> 26:01.000
How do you see that feature?

26:01.000 --> 26:04.000
So, it would definitely not replace

26:04.000 --> 26:06.000
Django ORM framework,

26:06.000 --> 26:08.000
but it could come on top of

26:08.000 --> 26:11.000
Django ORM framework.

26:11.000 --> 26:13.000
Right now,

26:13.000 --> 26:16.000
Django, why do I say Django in the day?

26:16.000 --> 26:20.000
Ninja is a lot of manual work to create stuff.

26:20.000 --> 26:25.000
So, there is, among the long list of things to look

26:25.000 --> 26:28.000
at, a Ninja plugin,

26:28.000 --> 26:30.000
that would help,

26:30.000 --> 26:32.000
and maybe manually,

26:32.000 --> 26:34.000
automatically create the serializers

26:34.000 --> 26:36.000
that kind of think.

26:36.000 --> 26:38.000
And that would definitely be something

26:38.000 --> 26:40.000
that's this kind of plugin system

26:40.000 --> 26:42.000
or the load to do.

26:42.000 --> 26:44.000
Same thing with Django or framework.

26:45.000 --> 26:47.000
Django or framework is much easier to do

26:47.000 --> 26:49.000
because there's already an application

26:49.000 --> 26:52.000
that does that, is the RSKM adapter.

26:52.000 --> 26:55.000
And it automates a lot of things.

26:55.000 --> 27:00.000
So, that's something that I could do much faster.

27:00.000 --> 27:03.000
But yeah, the rest application is,

27:03.000 --> 27:06.000
mostly, I'm not going to say the size.

27:06.000 --> 27:09.000
The small resting is something

27:09.000 --> 27:12.000
that you would use if you just have one or two

27:13.000 --> 27:14.000
rest views.

27:14.000 --> 27:16.000
And you don't need an old thing.

27:16.000 --> 27:19.000
If your whole application is based on an API,

27:19.000 --> 27:21.000
well, you should probably use a third party package

27:21.000 --> 27:24.000
that is specializes in APIs.

27:24.000 --> 27:28.000
But this could really come on top of that

27:28.000 --> 27:32.000
and help create factories for the views

27:32.000 --> 27:36.000
that you need to use a Ninja behind the scenes.

27:36.000 --> 27:37.000
Yeah, thank you.

27:37.000 --> 27:38.000
I think it's really cool.

27:38.000 --> 27:39.000
Really exciting idea.

27:39.000 --> 27:40.000
Thanks. Thank you.

27:43.000 --> 27:45.000
Do we have questions from the chat room?

27:45.000 --> 27:46.000
Do you know?

27:46.000 --> 27:48.000
No questions from the chat room.

27:48.000 --> 27:49.000
Okay.

27:49.000 --> 27:51.000
If that were all questions.

27:51.000 --> 27:53.000
One of the hands last question.

27:53.000 --> 27:54.000
And then we go.

28:01.000 --> 28:03.000
Really cool concept.

28:03.000 --> 28:07.000
If there was the funding to get this third and third

28:07.000 --> 28:10.000
of would this be something that could replace

28:10.000 --> 28:14.000
Django admin, would this be a final goal for a project?

28:14.000 --> 28:17.000
So, yeah, so if there is funding,

28:17.000 --> 28:19.000
so I'm one of the things I'm going to

28:19.000 --> 28:22.000
walk into is getting funding

28:22.000 --> 28:25.000
either from the surroundings or

28:25.000 --> 28:27.000
I was not kidding.

28:27.000 --> 28:30.000
If any of you has a company that is interested in the project

28:30.000 --> 28:33.000
and wants help to integrate it, call me.

28:33.000 --> 28:35.000
So I'm hoping to get funding

28:35.000 --> 28:38.000
and if there is funding and if there is enough.

28:38.000 --> 28:43.000
There is other people in the steering council who think

28:43.000 --> 28:45.000
the idea is interesting.

28:45.000 --> 28:49.000
So there could be something that lands in Django

28:49.000 --> 28:52.000
to replace the Django admin.

28:52.000 --> 28:56.000
If that happens and nothing is going to happen.

28:56.000 --> 29:00.000
But if that happens, we will need to set a new

29:00.000 --> 29:03.000
deprecation policy in place to

29:03.000 --> 29:08.000
deprecate the current admin in maybe two or three version

29:08.000 --> 29:13.000
to major version instead of the current one major version.

29:13.000 --> 29:17.000
And probably what would land in core would probably be the core of

29:17.000 --> 29:22.000
Django admin do and leave the plugins outside.

29:22.000 --> 29:27.000
Right now, this is not going to happen.

29:27.000 --> 29:30.000
I hope it's going to happen later, but I don't know.

