ورود

View Full Version : auto_now_add=True ؟؟؟



arman54
سه شنبه 19 آبان 1394, 23:03 عصر
سلام ...

توي django توي models.py و توي بعضي از فيلدها
auto_now_add=True دقيقا كارش چيه؟(منظور از اتوماتيك بودنش چيه)

َAhmad Hamzeei
چهارشنبه 20 آبان 1394, 00:52 صبح
مثلا اگر توی فیلد DateField بیایم و auto_now_add=True رو استفاده کنیم، به این صورت:

from django.db import models

class User(models.Model):
name = models.CharField(max_length=100)
join_date = models.DateField(auto_now_add=True)

def __str__(self):
return self.name

توی کد بالا با اضافه کردن رکورد جدید، به صورت اتوماتیک فیلد join_date رو تاریخ فعلی قرار میده.
در این حالت حتی اگر شما توی رکورد جدید join_date رو معین کرده باشید مقداری که شما معین کردید رو در نظر نمی‌گیره و به جاش توی فیلد join_date تاریخ فعلی رو قرار میده.

مثلا تو کد زیر من برای کاربر masoud فیلد join_date رو مقداردهی کردم که درنظر گرفته نشده و به جای اون تاریخ امروز رو قرار داده.
و برای کاربر iman فیلد رو مقداری ندادم که بازم برای فیلد join_date تاریخ امروز رو قرار داده.

>>> u1 = User.objects.create(name='masoud', join_date=datetime.date(2011, 3, 11))
>>> u1.join_date
datetime.date(2015, 11, 11)
>>> u2 = User.objects.create(name='iman')
>>> u2.join_date
datetime.date(2015, 11, 11)