यदि आपको अपने फॉर्म या डेटाबेस में लोकेशन फील्ड जोड़ने की आवश्यकता है, तो आप charfield का उपयोग करके ऐसा कर सकते हैं लेकिन यह अभी भी अच्छा विचार नहीं है। Django में, हमारे पास 'django-countries' नामक एक थर्ड-पार्टी पैकेज है जो कंट्री फील्ड प्रदान करता है। इस लेख में, आइए देखते हैं कि django-countries का उपयोग करके Django में कंट्री फील्ड कैसे जोड़ा जाए।
सबसे पहले, एक Django प्रोजेक्ट और एक ऐप बनाएं।
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 रिक्वेस्ट हैंडलर में रेंडर किया। 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)
यहां हमने एक मॉडल बनाया जिसमें हमने बस एक कंट्री फील्ड जोड़ा जो कंट्री डेटा स्टोर करेगा।
अब, माइग्रेशन बनाएं और माइग्रेट करें। आप पूरी तरह तैयार हैं। अब, आप आउटपुट जांचने के लिए आगे बढ़ सकते हैं।
आउटपुट
