আপনার ফর্ম বা ডাটাবেসে লোকেশন ফিল্ড যোগ করতে চাইলে, আপনি charfield ব্যবহার করে করতে পারেন কিন্তু এটা এখনো उतना ভালো আইডিয়া নয়। ডজ্যাঙ্গোতে, আমাদের একটি থার্ড-পার্টি প্যাকেজ রয়েছে 'django-countries' যা কান্ট্রি ফিল্ড প্রদান করে। এই আর্টিকেলে, চলুন দেখি django-countries ব্যবহার করে ডজ্যাঙ্গোতে কান্ট্রি ফিল্ড কিভাবে যোগ করতে হয়।
প্রথমে, একটি ডজ্যাঙ্গো প্রজেক্ট এবং একটি অ্যাপ তৈরি করুন।
INSTALLED_APPS-এ অ্যাপ যোগ করুন এবং urls সেট আপ করুন।
django-countries মডিউল ইনস্টল করুন:
pip install django-countries
settings.py-তে এটি যোগ করুন:
INSTALLED_APPS += ['django_countries']
উদাহরণ
অ্যাপের urls.py-তে:
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name="home"),
]
প্রথম আপনার urls সেট আপ করুন।
views.py-তে:
from django.shortcuts import render
from django import forms
from .models import Data
class SalaryForm(forms.ModelForm):
class Meta:
model = Data
fields = "__all__"
def home(request):
if request.method == 'POST':
form = SalaryForm(request.POST)
if form.is_valid():
form.save()
else:
form = SalaryForm()
return render(request, 'home.html', {'form': form})
এখানে আমরা সিম্পলি একটি ফর্ম তৈরি করেছি এবং আমাদের ভিউয়ের GET request handler-এ এটিকে রেন্ডার করেছি। POST হ্যান্ডলারে, আমরা ফর্ম ডেটা সেভ করি।
অ্যাপ ডিরেক্টরিতে একটি templates ফোল্ডার তৈরি করুন এবং সেখানে একটি home.html তৈরি করুন। home.html-এ:
<!DOCTYPE html>
<html>
<head>
<title>
TUT
</title>
<style>
</style>
</head>
<body>
<h2>FORM</h2>
<form action="/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>
</body>
</html>
এটি আমাদের ফর্মের ফ্রন্টএন্ড HTML।
models.py-তে:
from django.db import models
from django_countries.fields import CountryField
class Data(models.Model):
Name = models.CharField(max_length=100)
salary = models.CharField(max_length=20)
country_of_work = CountryField(blank=True)
এখানে আমরা একটি মডেল তৈরি করেছি যেখানে আমরা সিম্পলি একটি কান্ট্রি ফিল্ড যোগ করেছি যা কান্ট্রি ডেটা সংরক্ষণ করবে।
এখন, মাইগ্রেশন তৈরি করুন এবং মাইগ্রেট করুন। আপনার কাজ শেষ। এখন আপনি আউটপুট চেক করতে পারেন।
আউটপুট
