1- Install Django: pip install django==2.1.5
2- Start Project: django-admin startproject trydjango .
3- python manage.py runserver
4- python manage.py migrate
5- python manage.py createsuperuser
python manage.py startapp <app_name>
- add
app_name
to INSTALLED_APPS insetting.py
- Create class in
models.py
class <model_name>(models.Model): <field_name> = models.CharField(max_length=120) <field_name> = models.TextField() <field_name> = models.BooleanField(default=True)
python manage.py makemigrations
python manage.py migrate
- add
from .models import <model_name>
toadmin.py
- add
admin.site.register(<model_name>)
toadmin.py
- Go to admin panel to see databases
-
add
from django.urls import include, path
tourls.py
in main Project Folder -
add
path('<app_name>/', include('<app_name>.urls')),
-
create
urls.py
file in app folder- add
from django.urls import path
tourls.py
- add
from .views import <defined>_view, <defined>_view
tourls.py
- add
app_name = <app_name>
- add
path('<path>', <defined>_view, name='<defined>'),
- add
- create
forms.py
file in app folder - add
from django import forms
toforms.py
- add
from .models import <model_name>
toforms.py
- add form class to
forms.py
class ProductForm(forms.ModelForm): class Meta: model = <model_name> fields = [ '<model_field>', '<model_field>', '<model_field>', ]
- add
from .forms import <form_class_name>
toviews.py
- add
from django.urls import reverse
tomodels.py
- add function to Class in
models.py
def get_absolute_url(self): return reverse("blog:detail", kwargs={"id": self.id})
- put
os.path.join(BASE_DIR, 'templates')
toTEMPLATES > DIRS
tosetting.py
- create
<app_name>
folder in main folder or in<app_name>
folder - create
templates
folder in main folder or in<app_name> > <app_name>
folder - add
from .models import <model_name>
toviews.py
- define function in
views.py
def home_view(request): return render(request, "home.html", {})
- add html file to
templates
folder
- add to
views.py
from django.views.generic import ( CreateView, DetailView, ListView, UpdateView, DeleteView )
- add
from .models import <model_name>
toviews.py
- add
from .views import <model_name>ListView
tourls.py
- add paterns to
urls.py
app_name = '<app_name>' urlpatterns = [ path('', <model_name>ListView.as_view(), name='list'), path('<int:id>', ArticleDetailView.as_view(), name='detail'), ]
- add Class to
views.py
for creating List viewclass <model_name>ListView(ListView): template_name = '<app_name>/<template_name>' queryset = <model_name>.objects.all()
- add Class to
views.py
for creating Detail viewclass <model_name>DetailView(DetailView): template_name = '<app_name>/<template_name>' def get_object(self): id_ = self.kwargs.get("id") return get_object_or_404(<model_name>, id=id_)
- add
from .forms import <model_name>ModelForm
toviews.py
- add Class to
views.py
for creating Ceate viewclass <model_name>CreateView(CreateView): template_name = '<app_name>/<template_name>' form_class = <model_name>ModelForm # success_url = '/' def form_valid(self, form): return super().form_valid(form) # def get_success_url(self): # return '/'
- add Class to
views.py
for creating Update viewclass <model_name>UpdateView(UpdateView): template_name = '<app_name>/<template_name>' form_class = <model_name>ModelForm def get_object(self): id_ = self.kwargs.get("id") return get_object_or_404(<model_name>, id=id_) # success_url = '/' def form_valid(self, form): return super().form_valid(form) # def get_success_url(self): # return '/'
- add
from django.urls import reverse
toviews.py
- add Class to
views.py
for creating Delete viewclass <model_name>DeleteView(DeleteView): template_name = '<app_name>/<template_name>' def get_object(self): id_ = self.kwargs.get("id") return get_object_or_404(<model_name>, id=id_) def get_success_url(self): return reverse('<app_name>:<url_name>')
- add
from django.shortcuts import redirect
toviews
- add
return redirect('<url>')
to View for redirecting