سؤال

ولدي هذا الرمز في بلدي tests.py:

from models import *

ووفي models.py لدي معالج إشارة وتسجيله مع

post_save.connect( post_save_note, sender=Note )

وعندما تشغيل اختبار مع ./manage.py test main

ولقد وجدت تم تسجيل معالج إشارة مرتين وتنفيذ مرتين، ولقد وجدت انها لأنه تم استيراد نماذج مرتين.

لا يمكنني وضع from models import * في رمز اختبار؟ ماذا علي أن أفعل؟

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

المحلول

وأنت بحاجة للتأكد من النماذج الخاصة بك دائما استيرادها بنفس الطريقة.

وهكذا على سبيل المثال، إذا كان لديك في example1/tests.py:

from models import *

ووفي حزمة example2/views.py آخر:

from example1.models import ModelA

وبعد ذلك سيكون لديك المشكلة التي تعاني منها. والحل هو أن تكون متسقة واستخدام واحد فقط أو الآخر.

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