মডিউল ৭-৭ঃ ক্যাটেগরি ও পোস্ট তৈরি
Author ও Profile মডেলের জন্য যেসব কাজ করেছি, এই মডিউলে অনুরুপ কাজগুলো Category ও Post মডেলের জন্যেও করে ফেলি।
শুরুতেই categories এ্যাপে forms.py ফাইল ক্রিয়েট করে Category মডেলের জন্য মডেল-ফর্ম তৈরি করি-
Code:: 7.7.1 categories\forms.py
from django import forms
from .models import Category
class CategoryForm(forms.ModelForm):
class Meta:
model = Category
fields = '__all__'
মডেল-ফর্ম CategoryForm ম্যানেজ করার জন্য view ফাংশন add_category লিখে ফেলি-
Code:: 7.7.2 categories\views.py
from django.shortcuts import render, redirect
from . import forms
# Create your views here.
def add_category(request):
if request.method == 'POST': # if user click submit button
category_form = forms.CategoryForm(request.POST)
if category_form.is_valid():
category_form.save()
return redirect('add_category')
else: # user normally website e gele blank form pabe
category_form = forms.CategoryForm()
return render(request, 'add_category.html', {'form' : category_form})
categories এ্যাপে templates ফোল্ডার ক্রিয়েট করে add_category.html ফাইলটি ক্রিয়েট করে ফেলি -
Code:: 7.7.3 categories\templates\add_category.html
{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block content %}
<form style="width:50% ; margin : auto" method="post">
<h1>Add Category page</h1>
{% csrf_token %}
{{form | crispy}}
<button class="btn btn-warning">Submit</button>
</form>
{% endblock %}
এখন প্রজেক্ট রান করে http://127.0.0.1:8000/category/add/ URL -এ গিয়ে CategoryForm -এ নিচের মত ইনপুট দেই-

এডমিন সাইটে গেলে দেখতে পাব ফর্মে ইনপুট দেয়া Category টি ডেটাবেজে সেভ হয়েছে-

এবার posts এ্যাপে forms.py ফাইল ক্রিয়েট করে Post মডেলের জন্য মডেল-ফর্ম তৈরি করি-
Code:: 7.7.4 posts\forms.py
from django import forms
from .models import Post
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = '__all__'
মডেল-ফর্ম PostForm ম্যানেজ করার জন্য view ফাংশন add_post লিখে ফেলি-
Code:: 7.7.5 posts\views.py
from django.shortcuts import render, redirect
from . import forms
from . import models
# Create your views here.
def add_post(request):
if request.method == 'POST': # user post request koreche
post_form = forms.PostForm(request.POST)
if post_form.is_valid():
post_form.save()
return redirect('add_post')
else: # user normally website e gele blank form pabe
post_form = forms.PostForm()
return render(request, 'add_post.html', {'form' : post_form})
posts এ্যাপে templates ফোল্ডার ক্রিয়েট করে add_post.html ফাইলটি ক্রিয়েট করে ফেলি -
Code:: 7.7.6 posts\templates\add_post.html
{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block content %}
<form style="width:50% ; margin : auto" method="post">
<h1>Add Post page</h1>
{% csrf_token %}
{{form | crispy}}
<button class="btn btn-warning">Submit</button>
</form>
{% endblock %}
এখন প্রজেক্ট রান করে http://127.0.0.1:8000/post/add/ URL -এ গিয়ে PostForm-এ নিচের মত ইনপুট দেই-

এডমিন সাইটে গেলে দেখতে পাব ফর্মে ইনপুট দেয়া Post টি ডেটাবেজে সেভ হয়েছে-

Last updated