মডিউল ৭-৭ঃ ক্যাটেগরি ও পোস্ট তৈরি

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