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

  • DavideoDesign

    DavideoDesig

    24 NİSAN 2006
  • My name is Festis and I'm free

    My name is F

    2 EKİM 2011
  • TWiT Netcast Network

    TWiT Netcast

    27 EKİM 2005