মডিউল ৭-৬ঃ Author ও Profile

এই মডিউলে আমরা AuthorForm ডাটা ডেটাবেজে সেভ করার ব্যবস্থা করব এবং সেই সাথে ফর্মের সাহায্যে ডেটা নিয়ে নতুন Profile তৈরি করব।

AuthorForm ডাটা ডেটাবেজে সেভ করার জন্য add_author( ) ফাংশনটি নিচের মত করে লিখি-

Code:: 7.6.1 author\views.py

from django.shortcuts import render, redirect
from . import forms
# Create your views here.

def add_author(request):
    if request.method == 'POST':
        author_form = forms.AuthorForm(request.POST)
        if author_form.is_valid():
            author_form.save()
            return redirect('add_author')
    
    else:
        author_form = forms.AuthorForm()
    return render(request, 'add_author.html', {'form' : author_form})

এখন প্রজেক্ট রান করে ফর্মটিতে নিচের মত ইনপুট দেই-

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

Author মডেলের জন্য যেসব কাজ আমরা করেছি, অনুরুপ কাজগুলো Profile মডেলের জন্যেও করে ফেলি। শুরুতেই profiles এ্যাপে forms.py ফাইল ক্রিয়েট করে Profile মডেলের জন্য মডেল-ফর্ম তৈরি করি-

Code:: 7.6.2 profiles\forms.py

from django import forms
from .models import Profile

class ProfileForm(forms.ModelForm):
    class Meta: 
        model = Profile
        fields = '__all__'

মডেল-ফর্ম ProfileForm ম্যানেজ করার জন্য view ফাংশন add_profile লিখে ফেলি-

Code:: 7.6.3 profiles\views.py

from django.shortcuts import render, redirect
from . import forms
# Create your views here.
def add_profile(request):
    if request.method == 'POST':
        profile_form = forms.ProfileForm(request.POST)
        if profile_form.is_valid():
            profile_form.save()
            return redirect('add_profile')
    
    else:
        profile_form = forms.ProfileForm()
    return render(request, 'add_profile.html', {'form' : profile_form})

profiles এ্যাপে templates ফোল্ডার ক্রিয়েট করে add_profile.html ফাইলটি ক্রিয়েট করে ফেলি -

Code:: 7.6.4 profiles\templates\add_profile.html

{% extends 'base.html' %}
{%  load crispy_forms_tags %}
{% block content %}


<form style="width:50% ; margin : auto" method="post">
    <h1>Add Profile page</h1>
    {% csrf_token %}
{{form | crispy}}

<button class="btn btn-warning">Submit</button>
</form>

{% endblock %}

এখন প্রজেক্ট রান করে http://127.0.0.1:8000/profile/add/ URL -এ গিয়ে ProfileForm-এ নিচের মত ইনপুট দেই-

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

বলুন তো দেখি ?? ProfileForm এর Author ফিল্ডে 'Tamim' ইনপুট না দিয়ে বরং অলরেডি প্রফাইল আছে এমন কোনো Author কে ইনপুট দিলে কি ঘটত ?

Last updated