SORU
5 Mayıs 2010, ÇARŞAMBA


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
5 Mayıs 2010, ÇARŞAMBA


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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • The Verge

    The Verge

    8 AĞUSTOS 2006
  • thetrollska

    thetrollska

    2 EKİM 2009
  • Vortez

    Vortez

    27 Temmuz 2009