Hi!
I’ve worked my way through the tutorial within the past weeks and I am almost done now!
Within that process I tried not only to follow the tutorial but to read additional cross references to get a basic overview of the docs.
Along the way I identified (at least) three great topics, which seem to be most(?) important for understanding and working with django for the beginning:
Templates
Class-based Views
Admin
In the tutorial they sometimes use certain options or methods to describe the basic functionality of certain admin objects (like model and extrain the class ChoiceInline of part 7).
I understand that these work only examplary to describe which options one can use.
But in the end it seems very hard for me (as python-django-newbie and non-computer-scientist) to achieve an overview on:
“What’s actually important?”
“How to know what I need? Where to find it and how to understand it?”
Can you maybe recommend certain strategies to find what’s important to understand the bigger concepts and connections between the different parts of documentation (and the different objects)?
Difficulties for me at the moment are:
How to use the template language and how to know and remember the keywords which can be used?
How to choose the correct (class-based) views? Would I first design the functionality I want (in theory) and then dive into the docs to find out if there is already a class-based view for that approach - or how do you work?
What’s a reasonable approach to design the admin and to pick the best options from the huge documentation?
So I think my basic, underlying issues are:
How can I use a certain features of django without knowing that they exist?
How will I find these features while I need them (and before I’ve built a workaround)?
The tutorial left me with lots of questions and I hope they are not to unspecific.
However I am excited to connect to the community.
Thank you
What’s important will vary depending on the type of project you’re working on. An API project with a Vue front end for example will not need much expertise with templates.
In general though, I would say, above all, understand how databases work, what your requirements are, and how to structure your models well. If you can do this upfront, it will save you a lot of heartache later on. This isn’t really Django-specific, but I think it’s true anyway.
How to use the template language and how to know and remember the keywords which can be used?
How to choose the correct (class-based) views? Would I first design the functionality I want (in theory) and then dive into the docs to find out if there is already a class-based view for that approach - or how do you work?
What’s a reasonable approach to design the admin and to pick the best options from the huge documentation?
You need to just pick a small project really and build it. Most of what you’re asking here will kind of fall into place when you try and do it for yourself (i.e. not just following a tutorial).
As for admin, I suggest you just take the out of the box functionality to start with, and leave the advanced stuff until later.
For CBVs, this is a great reference page:
How can I use a certain features of django without knowing that they exist?
How will I find these features while I need them (and before I’ve built a workaround)?
Just do it! Seriously, build something and you’ll encounter things you want to do as you want to do them. Other than that, maybe pick some questions off StackOverflow that you don’t know the answer to and try and answer them - I find trying to help others is a good way to increase the breadth of my own knowledge.
Docs are great, here is good, StackOverflow, Python slack has a django channel, there’s a discord. All are places you can ask questions if you want to do something specific and can’t find a tutuorial/SO question/docs reference. I’d usually start with the docs though, and they’re pretty good in general, though occasionally I’ve found the info I wanted was a little buried.
@michjnich
Thank you for the extensive reply!
Actually I have many ideas for projects (websites/ web apps).
But at the moment I have the feeling that they are to complex for the beginning.
I think I’ll watch some YouTube videos to gather some inspiration or maybe I’ll just start with a simple blog…
However does it basically make sense to follow Django tutorials which are based on Django Version 1 or 2 - like the one from simpleisbetterthancomplex ?
Or did django change so much that it’s useful to focus on recent ones - based on 3.x ?
Simpleisbetterthancomplex is still a great resource. His tutorial on extending the user model for example is the goto recommendation from me when I see people asking about how to do it.
I think v1 tutorials may perhaps be a little dated now, and of course there is new stuff in v3, but v2 stuff should be mostly OK, and - unless itäs something that’s been specifically depracated - should still work even ifthere is a newer way of doing it.