আমার একটি মডেল রয়েছে যা আমি একটি বিষয়ের নাম এবং তাদের আদ্যক্ষর অন্তর্ভুক্ত রাখতে চাই (তার ডেটা কিছুটা বেনামে এবং আদ্যক্ষর দ্বারা ট্র্যাক করা হয়)।
এই মুহুর্তে, আমি লিখেছি
class Subject(models.Model):
name = models.CharField("Name", max_length=30)
def subject_initials(self):
return ''.join(map(lambda x: '' if len(x)==0 else x[0],
self.name.split(' ')))
# Next line is what I want to do (or something equivalent), but doesn't work with
# NameError: name 'self' is not defined
subject_init = models.CharField("Subject Initials", max_length=5, default=self.subject_initials)
শেষ লাইনের দ্বারা নির্দেশিত হিসাবে, আমি প্রাথমিকভাবে ক্ষেত্রের (নামের স্বাধীন) হিসাবে ডাটাবেসে সংরক্ষণ করতে সক্ষম হতে পছন্দ করতাম তবে নামের ক্ষেত্রের ভিত্তিতে এটি একটি ডিফল্ট মান দিয়ে শুরু করা হয়। তবে, জাজানো মডেলগুলির 'স্ব' আছে বলে মনে হচ্ছে না বলে আমার সমস্যা হচ্ছে।
আমি যদি লাইনটি এতে পরিবর্তন করি তবে আমি subject_init = models.CharField("Subject initials", max_length=2, default=subject_initials)
সিঙ্কডিবি করতে পারি, তবে নতুন বিষয় তৈরি করতে পারি না।
জাঙ্গোতে কি এটি সম্ভব, কলযোগ্য ফাংশন থাকা অন্য ক্ষেত্রের মানের ভিত্তিতে কিছু ক্ষেত্রে ডিফল্ট দেয়?
(কৌতূহলের জন্য, আমি আমার স্টোর আদ্যক্ষর পৃথকভাবে আলাদা করতে চাইছি এমন বিরল ক্ষেত্রে যেখানে আমি ট্র্যাক করছি তার চেয়ে অদ্ভুত শেষ নামগুলি আলাদা থাকতে পারে Eg "জেএম" পরিবর্তে "জেএম" এবং প্রশাসক হিসাবে এটি সম্পাদনা ঠিক করতে চায়))
super().save(*args, **kwargs)
(Subject, self
আর্গুমেন্ট ছাড়াই ) কল করতে পারেন ।