কোনও অবজেক্টের জন্য স্বয়ংক্রিয়ভাবে কোনও সৃষ্টির তারিখ নির্ধারণের সর্বোত্তম উপায় এবং সেই ক্ষেত্র যা রেকর্ড করবে যখন অবজেক্টটি সর্বশেষ আপডেট হয়েছিল?
models.py:
created_at = models.DateTimeField(False, True, editable=False)
updated_at = models.DateTimeField(True, True, editable=False)
views.py:
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
obj = form.save(commit=False)
obj.user = request.user
obj.save()
return HttpResponseRedirect('obj_list')
আমি ত্রুটি পেয়েছি:
objects_object.created_at may not be NULL
আমাকে নিজেই এই মানটি সেট করতে হবে? আমি ভেবেছিলাম যে এটি পরামিতিগুলির বিন্দু ছিল DateTimeField
(বা সেগুলি কেবল পূর্বনির্ধারিত, এবং যেহেতু আমি সেট করেছি editable=False
তারা ফর্মটিতে প্রদর্শিত হবে না, তাই অনুরোধে জমা দেওয়া হবে না, এবং তাই পাবে না) ফর্মটি রাখা?)।
এটি করার সর্বোত্তম উপায় কী? একটি __init__
পদ্ধতি?
auto_now
এবংauto_now_add
মন্দ হিসাবে বিবেচিত হয়, সুতরাং এড়াতে চেষ্টা করুন। এই উত্তরটি ব্যাখ্যা করে যে পদ্ধতিটি ওভাররাইড করে কেন এবং আরও ভাল পদ্ধতির সরবরাহ করেsave()
।