Django datetime (varsayılan=datetime.sorunları(şimdi)
Böyle db model var:
from datetime import datetime
class TermPayment(models.Model):
# cut out some fields, non relevant to the question
date = models.DateTimeField(default=datetime.now(), blank=True)
Ve yeni bir örnek ekleniyor:
tp = TermPayment.objects.create(**kwargs)
Bir sorun daha var: tarih alanında aynı değere sahip veritabanı tüm kayıtları - ilk ödeme tarihi. Sunucu yeniden başlatıldıktan sonra bir plak var, yeni bir tarih ve diğerleri ile aynı. Bazı veri cache gibi kullanılır ama nerede bulamıyorum.
veritabanı: mysql 5.1.25
django v1.1.1
CEVAP
datetime.now()
model tanımlandığında değerlendiriliyor gibi görünüyor, ve her zaman bir kayıt eklemek.
Django zaten yapmak için çalışıyoruz ne yapmak için bir özelliği vardır:
date = models.DateTimeField(auto_now_add=True, blank=True)
ya
date = models.DateTimeField(default=datetime.now, blank=True)
Şu anda ne ikinci örnek arasındaki farkı parantez eksikliğidir. Parantez olmadan datetime.now
ileterek, bir kayıt eklenir her zaman adıyla anılacak olan gerçek işlevi geçirmeden. Eğer datetime.now()
, o zaman geçirirseniz sadece işlevini değerlendirmek ve dönüş değeri geçirmeden.
Django mevcuttur daha fazla bilgi model field reference
DateTime DateTime Özelliği varsayılan ...
NOW() Set datetime veri türü için Vars...
Çevre.Vs DateTime TickCount.Şimdi...
Birim Testi: DateTime.Şimdi...
DateTime.Şimdi en iyi şekilde ölçmek i...