মডিউল ৭-৬ঃ 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