ساخت لیست کشورها در جنگو با select
در این نوشته به شما روش ساخت یک فیلد انتخاب کشور با تگ select و option را در فریمورک جنگو آموزش خواهیم داد. بعد از این آموزش شما در فریمورک Django میتوانید برای کاربران خود فیلد انتخاب کشور را اضافه کنید.
ساخت لیست کشورها در جنگو با select
برای اینکار ابتدا یک فایل با نام country.json نیاز دارید که محتوای آن مانند زیر است:
{ "country": [ { "name": "Iran", "code": "IR", "name_fa": "ایران" }, { "name": "Afghanistan", "code": "AF", "name_fa": "افغانستان" }, { "name": "Tajikistan", "code": "TJ", "name_fa": "تاجیکستان" }, { "name": "Uzbekistan", "code": "UZ", "name_fa": "ازبسکتان" }, { "name": "Turkey", "code": "TR", "name_fa": "ترکیه" }, { "name": "Iraq", "code": "IQ", "name_fa": "عراق" }, { "name": "Pakistan", "code": "PK", "name_fa": "پاکستان" }, { "name": "Turkmenistan", "code": "TM", "name_fa": "ترکمنستان" }, { "name": "Azerbaijan", "code": "AZ", "name_fa": "آذربایجان" } ] }
در کد بالا خلاصهای از کشورها آورده شده است اگر نیاز به دریافت یک فایل از تمامی کشورها را دارید روی این لینک کلیک کنید. این فایل را در مسیر اصلی برنامهی django ایجاد کنید. سپس وارد فایل views.py شوید و تابع زیر را به این فایل اضافه کنید:
def read_country(base_dir): country_file = str(base_dir) + '/country.json' if(os.path.isfile(country_file)): file = open(country_file) data = json.load(file) file.close() return data return {}
تابع بالا میتواند فایل country.json را بخواند حالا نیاز است که در view مورد نظر خود کد زیر را اضافه کنید:
country_list = read_country(settings.BASE_DIR)
حالا متغیر country_list را به context تابع view فعلی اضافه کنید و به سراغ فایل html مورد نظر خودتان بروید. در فایل html شما که در template ها قرار دارد کد زیر را اضافه کنید:
<select name="country" class="form-select" id="country"> <option value="" selected="selected">یکی را انتخاب کنید</option> {% for country_items in country_list %} <option value="{{ country_items.code }}">{{ country_items.name_fa }}</option> {% endfor %} </select>
اگر مراحل را به درستی انجام دهید؛ در حال حاضر باید یک select دارید که میتوانید از لیست کشورها یک کشور را انتخاب کنید.
اگر با آموزش بالا مشکلی داشتید در بخش نظرات همین نوشته برای ما بنویسید.
ارسال پاسخ