اذهب إلى المحتوى

السؤال

نشر

لدي في قاعدة البيانات جدول users على سبيل المثال وأريد أن أحذف أحد المستخدمين من خلال id المستخدم وقمت بعمل الكود التالي للقيام بهذه المهمة:

user = User.query.get(user_id)
db.session.delete(user)

ولكني أريد أن تتم عملية الحذف بدون تنفيذ إستعلام لجلب بيانات المستخدم، أي حذف المستخدم مباشرة من خلال id مثل جملة Delete في SQL تمامًا

كيف أقوم بهذا الأمر؟

Recommended Posts

  • 1
نشر

يوفر الكائن query التابع filter_by والتابع filer ، ويمكن إستخدام أي منهما للقيام بهذه المهمة، على النحو التالي:
التابع filter:

User.query.filter(User.id == 123).delete()

التابع filter_by:

User.query.filter_by(id=123).delete()

لكن إن كان الجدول users مرتبط بجدول آخر ويتم إعداد إستخدام CASCADE في العلاقة، فعليك أن تستخدم الطريقة الموجودة في سؤال أو الطريقة التالية:

user = db.session.query(User).filter(User.user_id==123).first()
db.session.delete(user)

كما يجب أن تقوم بعمل commit لهذه التغيرات من خلال السطر التالي:

db.session.commit()

لمزيد من المعلومات عن التابع filter يمكنك أن تلقي نظرة على هذه المقالات هنا:

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...