SQLALCHEMY - هل يمكننا استخدام مقارنة التاريخ فيما يتعلق بالتعريف؟

StackOverflow https://stackoverflow.com/questions/2384438

سؤال

لدي هذا 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. قضية ميلي ثانية أفترض.

ريتشارد لوبيز

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top