জ্যাঙ্গোতে - সমস্ত বস্তুর জন্য কোনও ডিফল্ট টাইমস্ট্যাম্প ক্ষেত্র রয়েছে? এটিই কি আমার মডেলটিতে 'তৈরি হওয়া' জন্য আমাকে স্পষ্টভাবে একটি 'টাইমস্ট্যাম্প' ফিল্ডটি ঘোষণা করতে হবে - বা এটি স্বয়ংক্রিয়ভাবে পাওয়ার কোনও উপায় আছে?
উত্তর:
ডিফল্টরূপে এ জাতীয় কোনও জিনিস নয়, তবে একটি যুক্ত করা খুব সহজ। ক্লাসে কেবলমাত্র auto_now_add
প্যারামিটারটি ব্যবহার করুন DateTimeField
:
created = models.DateTimeField(auto_now_add=True)
আপনি auto_now
'আপডেটেড' ক্ষেত্রের জন্যও ব্যবহার করতে পারেন । auto_now
এখানে আচরণ পরীক্ষা করুন ।
জন্য auto_now_add
এখানে ।
উভয় ক্ষেত্র সহ একটি মডেল দেখতে পাবেন:
class MyModel(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
স্বয়ংক্রিয়ভাবে জ্যাঙ্গো ডিফল্টরূপে কিছু করার মতো শোনায় না। এটি আপনাকে টাইমস্ট্যাম্পের জন্য বাধ্য করবে না।
আমি যদি একটি টাইমস্ট্যাম্প / ফিল্ড নেম ইত্যাদির কথা ভুলে না যেতে চান তবে আমি একটি বিমূর্ত বেস ক্লাস তৈরি করব এবং এটি থেকে সমস্ত মডেল উত্তরাধিকারী করব
class TimeStampedModel(models.Model):
created_on = models.DateTimeField(auto_now_add=True)
class Meta:
abstract = True
এটির wherever.TimeStampedModel
বদলে আমদানি করার মতো অনেক কিছুই মনে হয় নাdjango.db.models.Model
class MyFutureModels(TimeStampedModel):
....
created
এবং updated
। এটি পরিষ্কারভাবে এটি করার একটি দুর্দান্ত উপায়।
আপনি যদি জাঙ্গো-এক্সটেনশনগুলি ব্যবহার করছেন (যা জ্যাঙ্গো-অ্যাডমিন.পি কমান্ড লাইন সহায়কটিতে কার্যকারিতা যুক্ত করার জন্য একটি ভাল অ্যাপ) আপনি এই মডেল ক্ষেত্রগুলি তাদের টাইমস্ট্যাম্পডমডেল থেকে উত্তরাধিকার সূত্রে বা তাদের কাস্টম টাইমস্ট্যাম্প ক্ষেত্রগুলি ব্যবহার করে নিখরচায় পেতে পারেন
আপনি জাঙ্গো-এক্সটেনশানগুলি চেষ্টা করতে পারেন
আপনি যদি সময় স্ট্যাম্প বিমূর্ত মডেল ব্যবহার করতে চান
from django_extensions.db.models import TimeStampedModel
class A(TimeStampedModel):
...
এটিতে অন্যান্য বিমূর্ত মডেল রয়েছে। আপনি এটি ব্যবহার করতে পারেন।
আমার মনে হয় আমি সাথে যাব
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
ব্যবহার সম্পর্কে আমার কিছু ব্যাখ্যা দরকার need
class TimeStampedModel(models.Model):
created_on = models.DateTimeField(auto_now_add=True)
class Meta:
abstract = True
model_utils
জ্যাঙ্গো যা ইতিমধ্যে রয়েছে জন্যTimeStampedModel
, কিন্তু আপনি যদি এই প্যাকেজ থেকে অন্য কিছু প্রয়োজন হবে না, শুধু এটা W / O বাড়তি ওজনের রাখা।