Cách tốt nhất để tự động đặt ngày tạo cho một đối tượng và cũng là trường sẽ ghi lại khi đối tượng được cập nhật lần cuối?
mô hình:
created_at = models.DateTimeField(False, True, editable=False)
updated_at = models.DateTimeField(True, True, editable=False)
lượt xem:
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')
Tôi nhận được lỗi:
objects_object.created_at may not be NULL
Tôi có phải tự đặt giá trị này không? Tôi nghĩ rằng đó là điểm của các tham số được truyền tới DateTimeField
(hoặc chúng chỉ là mặc định và vì tôi đã đặt editable=False
nên chúng không được hiển thị trên biểu mẫu, do đó không được gửi trong yêu cầu và do đó không nhận được đưa vào mẫu?).
Cách tốt nhất để làm điều này là gì? Một __init__
phương pháp?
auto_now
vàauto_now_add
được coi là xấu xa, vì vậy hãy cố gắng tránh chúng. Câu trả lời này giải thích tại sao và cung cấp một cách tiếp cận tốt hơn, ghi đèsave()
phương thức.