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 NULLTô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=Falsenê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_nowvà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.