ورود

View Full Version : انتخاب بر اساس تاريخ ؟؟؟



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

فرض كنيم توي ديتابيس جنگو 10تا گزينه داريم كه براي هركدوم يه تاريخ خاصي نوشته شده.
حالا با پايتون چجوري ميشه از بين اين 10تا 3تارو انتخاب(فيلتر) كرد بطوريكه تاريخشون از بقيه بالاتر(يا پايينتر) باشه؟

َAhmad Hamzeei
چهارشنبه 20 آبان 1394, 00:31 صبح
اول که مدل رو می‌سازی، مثلا:

from django.db import models

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

def __str__(self):
return self.name

بعدش هم تغییرات رو تو دیتابیس اعمال می‌کنی و shell رو باز می‌کنی:

python manage.py migrate
python manage.py makemigrations
python manage.py shell

چند تا رکورد برای تست تو دیتابیس می‌سازی:


>>> from barname.models import User
>>> import datetime
>>> User.objects.create(name='ahmed', join_date=datetime.date.today())
<User: ahmed>
>>> User.objects.create(name='sajjad', join_date=datetime.date.today())
<User: sajjad>
>>> User.objects.create(name='ali', join_date=datetime.date(2002, 3, 11))
<User: ali>
>>> User.objects.create(name='mahdi', join_date=datetime.date(2010, 3, 11))
<User: madak>
>>> User.objects.create(name='saeed', join_date=datetime.date(2013, 3, 11))
<User: saeed>

دریافت سه تا رکوردی که تاریخ جدیدتری دارند:

>>> User.objects.order_by('-join_date')[:3]
[<User: ahmed>, <User: sajjad>, <User: saeed>]

دریافت سه تا رکوردی که تاریخ قدیمی‌تری دارند:

>>> User.objects.order_by('join_date')[:3]
[<User: ali>, <User: mahdi>, <User: saeed>]