যখন আপনার কাছে একটি পছন্দ বিকল্পের সাথে একটি মডেল ক্ষেত্র থাকে তখন আপনার কিছু পাঠযোগ্য নামগুলির সাথে জাদু মান যুক্ত থাকে। জ্যাঙ্গোতে কি মানের পরিবর্তে মানব পাঠযোগ্য নাম দ্বারা এই ক্ষেত্রগুলি সেট করার সুবিধাজনক উপায় আছে?
এই মডেলটি বিবেচনা করুন:
class Thing(models.Model):
PRIORITIES = (
(0, 'Low'),
(1, 'Normal'),
(2, 'High'),
)
priority = models.IntegerField(default=0, choices=PRIORITIES)
এক পর্যায়ে আমাদের কাছে একটি বিষয় রয়েছে এবং আমরা এর অগ্রাধিকারটি সেট করতে চাই। অবশ্যই আপনি করতে পারেন,
thing.priority = 1
তবে এটি আপনাকে অগ্রাধিকারের মান-নাম ম্যাপিং মুখস্থ করতে বাধ্য করে। এটি কাজ করে না:
thing.priority = 'Normal' # Throws ValueError on .save()
বর্তমানে আমার এই নির্বাক কাজটি রয়েছে:
thing.priority = dict((key,value) for (value,key) in Thing.PRIORITIES)['Normal']
তবে ওটা আড়ষ্ট। এই পরিস্থিতিটি কতটা সাধারণ হতে পারে তা বিবেচনা করে আমি ভাবছিলাম যে কারওর থেকে আরও ভাল সমাধান পাওয়া যায়। পছন্দের নাম দিয়ে ক্ষেত্রগুলি সেট করার জন্য কি কোনও ফিল্ড পদ্ধতি আছে যা আমি পুরোপুরি উপেক্ষা করেছি?