এই মডিউলে Base HTML নতুন Author এ্যাড করার জন্য ফর্ম ডিজাইন করে ফেলব
রুট ডিরেকটরিতে templates ফোলডার ক্রিয়েট করে এতে base.html ফাইল ক্রিয়েট করে ফেলি-
Code:: 7.5.1
templates\base.html
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- Bootstrap CSS -->
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC"
crossorigin="anonymous"
/>
<title>Hello, world!</title>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="container-fluid">
<a class="navbar-brand" href="#">Navbar</a>
<button
class="navbar-toggler"
type="button"
data-bs-toggle="collapse"
data-bs-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="{% url 'add_author' %}">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'add_author' %}">Add Author</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'add_author' %}">Add Category</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'add_author' %}">Add Post</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
</ul>
<form class="d-flex">
<input
class="form-control me-2"
type="search"
placeholder="Search"
aria-label="Search"
/>
<button class="btn btn-outline-success" type="submit">
Search
</button>
</form>
</div>
</div>
</nav>
{% block content %}
{% endblock %}
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"
crossorigin="anonymous"
></script>
</body>
</html>
settings.py এ TEMPLATES লিস্টে বেস ডিরেকটরি 'templates' এ্যাড করি-
Author মডেলের জন্য মডেল ফর্ম তৈরি করি-
Code:: 7.5.2
author\forms.py
from django import forms
from .models import Author
class AuthorForm(forms.ModelForm):
class Meta:
model = Author
fields = '__all__'
মডেল-ফর্ম AuthorForm ম্যানেজ করার জন্য view ফাংশন add_author লিখে ফেলি-
Code:: 7.5.3
author\views.py
from django.shortcuts import render, redirect
from . import forms
# Create your views here.
def add_author(request):
author_form = forms.AuthorForm()
return render(request, 'add_author.html', {'form' : author_form})
author এ্যাপে templates ফোল্ডার ক্রিয়েট করে add_author.html ফাইলটি ক্রিয়েট করে ফেলি -
Code:: 7.5.2
author\templates\add_author.html
{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block content %}
<form style="width:50% ; margin : auto" method="post">
<h1>Add author page</h1>
{% csrf_token %}
{{form | crispy}}
<button class="btn btn-warning">Submit</button>
</form>
{% endblock %}
এখন প্রজেক্ট রান করে http://127.0.0.1:8000/author/add/ URL -এ গেলে AuthorForm দেখতে পাব-
কিন্ত ফর্মের ডেটা ডেটাবেজে সেভ করার কাজটি অবশা এখনো করা হয় নাই তাই Submit বাটনে ক্লিক করলে আপাতত তেমন কোনো কাজ হবে না !