SQLALCHEMY - هل يمكننا استخدام مقارنة التاريخ فيما يتعلق بالتعريف؟
-
24-09-2019 - |
سؤال
لدي هذا mapper محدد:
mapper(Resource, resource_table,
properties = {'type' : relation(ResourceType,lazy = False),
'groups' : relation(Group, secondary = model.tables['resource_group'],
backref = 'resources'),
'parent' : relation(Relation, uselist=False, primaryjoin =
and_(relation_table.c.res_id == resource_table.c.res_id,
relation_table.c.end_date > datetime.now())),
'children' : relation(Relation, primaryjoin =
and_(relation_table.c.parent_id == resource_table.c.res_id,
relation_table.c.end_date > func.now()))})
ولكن لسبب ما ، إذا قمت بإنشاء صف جديد في جدول العلاقة وتغيير end_date من الصف القديم في العلاقة بالتاريخ القديم ، فلن يتم تحديث الوالد الخاص بالممتلكات. أيضًا إذا تم إعادة تحميل صف المورد ، يتم عرض العلاقة القديمة بالتاريخ القديم ، لذلك أنا متأكد من أنها تتعلق بمقارنة التاريخ في Mapper.
إذا قمت باستبدال end_date بواسطة سلسلة عمود العلم أو عدد صحيح وقامت بمقارنة على العلم ، أحصل على السلوك المناسب ، لكنني أريد استخدام التواريخ.
أي مساعدة مرحب بها.
شكرًا،
ريتشارد لوبيز
المحلول
لقد وجدت بالفعل ما هو الخطأ. العلاقة تعمل في الواقع. تم حل المشكلة عن طريق تعيين end_date إلى شيء مثل dateTime.now () - ثانية ، لذلك يحدث قبل أن يتم تحديث المورد بالفعل بواسطة SqlalChemy. قضية ميلي ثانية أفترض.
ريتشارد لوبيز
لا تنتمي إلى StackOverflow