You are on page 1of 3

HTML TEMPLATE

URL PATH {% for var in object_list %} BOOTSTRAP TO DESIGN YOUR PAGE


GENERIC VIEWS path(‘’, class Name.as_view(), name = “name”), #use this to get list of data
{{ var.variable in model}}
{% endfor %} BASE HTML TEMPLATE
from . models import model’s class name

from django.views.generic import ListView CSS to exdend to the other templates


URL PATH {{ block name }}
from django.views.generic import DetailView
path(‘name/<int:pk>’, class Name.as_view(), name = “name”),
{{ endblock }}

HTML TEMPLATE JS to extend to the other templates


class Name (ListView): DETAILED HTML TEMPLATE
{% for var in object_list %}
model = imported model <h1>{{ object.variable in model}}</h1> #create a link to navigate to detailed
#you can now reference to the template
template_name = “html.file” detailed information of the data. <a href = “{% url ‘link name’ post.pk %}”>
{{ var.variable in model}} </a>
{% extends base.html % }
{% endfor %}
class Name (DetailView):

model = imported model


PUTTING ALL THE FIELDS URL PATH TITLE LOGIC
template_name = “html.file”
fields = ‘__all__’ path(‘name/’, class Name.as_view(), name = “name”),

Is html template {%
title %} is set?
GENERIC VIEWS PUTTING ALL THE FIELDS
HTML TEMPLATE
fields = (‘var name of field from the model
from . models import model’s class name <form method=”POST”>
you want to put and they are all separated <div class=form-group> Use the {% title %}
by commas’) Use the {% title %} in
from django.views.generic import CreateView {% csrf _token%} provided by the base
the html template
#actual form html template
{ {form.as_p}}
CREATE FORMS.PY <button>BUTTON</button>
class Name (CreateView): </div>
model = imported model from django import forms </form> ADD POST URL TO MODELS.PY
from . model import model class name from django.urls import reverse
template_name = “html.file”
TWEAK VIEWS.PY def get_absolute_url(self):
class Name(forms.ModelForm):
#designate what fields from model we want to indicate
class Meta: # for specific route with id
from . forms import class name Detail view link
model = model class name
fields = (‘var name of the field’) return reverse(link name, kwargs={“pk”:self.pk}
#remove from the class, the fields
widgets = { # for unspecific route without id
section and change it with
‘var name of field’ :
DESIGNING YOUR FORM forms.fieldtype(attrs={‘class’: return reverse(link name)
form_class = import class name forms
WITH BOOTSTRAP ‘form-control’}),
GENERIC VIEWS
HTML TEMPLATE
PUTTING ALL THE FIELDS
from . models import model’s class name {% for var in object_list %}
URL PATH
fields = [‘var name of field from the model #use this to get list of data
from django.views.generic import UpdateView you want to put and they are all separated path(‘name/edit/<int:pk>’, class Name.as_view(), name = “name”), {{ var.variable in model}}
by commas’] <a href=”{% url ‘name’ post.pk%}”>Edit</a>
{% endfor %}
class Name (UpdateView):
HTML TEMPLATE HTML TEMPLATE
model = imported model URL PATH <form method=”POST”> <form method=”POST”>
template_name = “html.file” path(‘name /<int:pk>/ delete’, class Name.as_view(), name = “name”), <div class=form-group> <div class=form-group>
{% csrf _token%}
#designate what fields from model we want to indicate {% csrf _token%} #actual form
{ {form.as_p}}
<button>BUTTON</button> <button>BUTTON</button>
</div> </div>
</form> </form>

GENERIC VIEWS

from . models import model’s class name

from django.urls import reverse_lazy

from django.views.generic import DeleteView

class Name (DeleteView):

model = imported model

template_name = “html.file”

success_url = reverse_lazy(‘link name’)


App Name DetailView
django.views.generic

views.py HTML templates CreateView


Project Name
ListView UpdateView
urls.py
settings.py

urls.py
models.py

admin.py
CREATING THE PROJECT

PUSHING MODELS TO THE DB


CREATING THE PROJECT FOLDER MIGRATE COMMAND
~python manage.py makemigrations HTML TEMPLATES
Create virtual environment ~python manage.py migrate

~ python -m venv (name of venv) CREATING YOUR MODEL


Activating the venv ~from django.contrib.auth.models import User
RUNNING A SERVER
~(name of venv)\Scripts\activate ~python manage.py runserver class (name)(models.Model):
Installing Django #input your models here
SETTING THE URL FOR
~pip install django def __str__(self): VIEWS.PY
Creating the actual Django Project CREATING SUPERUSER/ADMIN
return self.attr ~from . models import class
~python manage.py createsuperuser
~django-admin.py startproject (name) from django..views.generic (GEN)
REGISTER YOUR MODEL TO ADMIN.PY
class name (GEN):
BUILDING YOUR APP ~from .models import (model class name)
model = imported model
~python manage.py startapp (name) admin.site.register(model class name)
template_name = “html.file”
CONNECTING APP URL TO PROJECT URL

~from django.urls import path, include SETTING THE URL FOR VIEWS.PY
INSTALL YOUR APP IN SETTINGS.PY ~from. import views
~urlpatterns = [
~just add the name of your app to the path(‘ ‘, class.as_view(), name = “name”)
setting.py >>> INSTALLED APPS [ ]; path(‘ ’, include(‘appname.urls’),
hh
]

You might also like