كيف يمكنني طرح تاريخين في Django/Python؟




datetime date (2)

أنا أعمل على تعقب القليل من اللياقة البدنية من أجل تعليم نفسي دجانجو. أريد الرسم بياني وزني مع مرور الوقت ، لذلك قررت استخدام بيثون غوغل المخططات. تتطلب مخططات Google أن تقوم بتحويل التاريخ الخاص بك إلى إحداثيات الفأس. للقيام بذلك ، أريد أخذ عدد الأيام في مجموعة البيانات الخاصة بي عن طريق طرح أول وزن في آخر وزن ثم استخدام ذلك لمعرفة الكوابل x (على سبيل المثال ، يمكن أن أكون 100 بالنتيجة وزيادتها x التنسيق بواسطة الرقم الناتج لكل تنسيق y.)

على أي حال ، أنا بحاجة لمعرفة كيفية طرح كائنات dangetime datetime من بعضها البعض وحتى الآن ، وأنا ضرب على كل من جوجل وهنا في كومة. أعرف لغة PHP ، لكني لم أتعامل أبدًا مع برمجة OO ، لذا يرجى إعفاء جهلي. إليكم ما تبدو عليه النماذج الخاصة بي:

class Goal(models.Model):
    goal_weight = models.DecimalField("Goal Weight", 
        max_digits=4, 
        decimal_places=1)
    target_date = models.DateTimeField("Target Date to Reach Goal")
    set_date = models.DateTimeField("When did you set your goal?")
    comments = models.TextField(blank=True)

    def __unicode__(self):
        return unicode(self.goal_weight)

class Weight(models.Model):
    """ Weight at a given date and time. """

    goal = models.ForeignKey(Goal)
    weight = models.DecimalField("Current Weight",
        max_digits=4, 
        decimal_places=1)
    weigh_date = models.DateTimeField("Date of Weigh-In")
    comments = models.TextField(blank=True)

    def __unicode__(self):
        return unicode(self.weight)

    def recorded_today(self):
        return self.date.date() == datetime.date.today()

أي أفكار حول كيفية المضي قدما في طريقة العرض؟ شكرا جزيلا!

https://code.i-harness.com


كائنات Django datetime هي فقط كائنات Python datetime عادية. عندما تطرح واحد datetime من آخر تحصل على كائن timedelta .

إذا كنت تبحث عن طرح طول الفترة الزمنية من datetime ما تحتاج إلى طرح كائن timedelta منه. فمثلا:

>>> from datetime import datetime, timedelta
>>> now = datetime.now()
>>> print now
2010-05-18 23:16:24.770533
>>> this_time_yesterday = now - timedelta(hours=24)
>>> print this_time_yesterday
2010-05-17 23:16:24.770533
>>> (now - this_time_yesterday).days
1

لاحظ أن الطرح لن ينجح في حال كان لموعدَي التاريخ اختلاف في وعي مختلف ، على سبيل المثال ، واحد مع tzinfo والآخر بدون (أصلية).





time