سؤال

لدي تطبيق Python الخيوط + postgres. أنا أستخدم ORM Django لحفظه إلى Postgres ..
لدي متزامنة حفظ المكالمات. من حين لآخر 2 مؤشرات الترابط حفظ مع نفس المفتاح الأساسي الذي يؤدي إلى مشكلة.

سجل postgres:
خطأ: قيمة مفتاح مكررة تنتهك القيد الفريد "store_pkey"
العبارة: إدراج في "متجر" ("store_id" ، "العنوان") (E'Han277 "، E'101 Ocean Street")

شفرة:
في الكود أرى integrityerror. حاولت طرقًا مختلفة للتعامل مع هذا.

أ.
محاولة:
A.Save ()
باستثناء IntegrityError:
يمر

هذا يسبب internalerror

ب. حاولت القيام بصفوف المعاملات .. لكن لست متأكدًا .. بقدر ما أفهم أنك بحاجة إلى توفير مكالمات متميزة للحصول على المعاملات

      sid = transaction.savepoint()
      try:
        row.save()
      except IntegrityError, e:
        transaction.savepoint_rollback(sid)
        pass
      transaction.commit()

أول نقطة حفظ تفشل معها

السمة: كائن "nontype" ليس له سمة "مؤشر"

أ. قرأت في مكان ما أن Django ليس مؤلمًا بنسبة 100 ٪. هل هو خيار جيد في usecase الخاص بي. كنت أستخدم Django بالفعل لتطبيق آخر وأحتاج إلى ORM .. لذلك بطبيعة الحال اخترت Django
ب. كيفية التعامل مع هذا الموقف .. أي تعليقات.

شكرا وتحييد ، راميا

هل كانت مفيدة؟

المحلول

فقط للتأكد من أنك تستخدم سلاسل للمفاتيح الأساسية إذا فهمت بشكل صحيح؟

السمة: كائن "nontype" ليس له سمة "مؤشر"

هذا يعني أن هناك خطأ في بعض كود بيثون. هل حاولت استخدام إصدار آخر أو مراجعة من Django أو البحث عن Django Trac لحضنك؟ ليس من غير المألوف أن تتأثر ببعض الأخطاء إذا كنت تستخدم الإصدار من Trunk.

كبديل ، يمكنك أيضًا محاولة نشر Django باستخدام عمليات متعددة بدلاً من مؤشرات ترابط متعددة إذا كان هذا خيارًا.

ومع ذلك ، قد لا تزال ترغب في معرفة سبب تلقي طلبات مكررة لأنها قد تكشف عن بعض الأخطاء الأخرى.

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