وجانغو-profiletools هو التطبيق جانغو أن يوفر أدوات لنماذج الشخصية في جانغو.
تركيب
الحصول على رمز:
نقطة تثبيت جانغو-profiletools
تثبيت الوسيطة وcontext_processor في settings.py الخاص بك:
TEMPLATE_CONTEXT_PROCESSORS = (
على & nbsp؛ ...
على & nbsp؛ "profiletools.context_processors.fetch_profile،
)
MIDDLEWARE_CLASSES = (
...
"profiletools.middleware.LazyProfileMiddleware،
)
أيضا في settings.py، تعيين AUTH_PROFILE_MODULE إلى نموذج ملف التعريف الخاص بك:
AUTH_PROFILE_MODULE = "profiles.Profile"
وبناء على ذلك، ينبغي أن نموذج ملفك الشخصي تشبه شيئا مثل:
# profiles.models.Profile.py
من django.contrib.auth.models استيراد العضو
من نماذج استيراد django.db
الملف فئة (models.Model):
على & nbsp؛ المستخدم = models.OneToOneField (العضو)
على & nbsp؛ مواطنه __unicode __ (النفس):
على & nbsp؛ self.user.username عودة
ملاحظة: إذا كنت لا تستخدم profiles.models.Profile، ويقول members.models.UserProfile المضي قدما وتغيير AUTH_PROFILE_MODULE إلى "members.UserProfile".
استعمال
في القوالب الخاصة بك:
{{}} request.my_profile
في وجهات نظركم وظيفية:
لمحة = request.my_profile
في وجهات النظر على أساس طبقي الخاص بك:
الملف الشخصي = self.request.my_profile
اتصل my_profile عدة مرات كما تريد، فقط الأحمال مرة واحدة. حتى إذا كنت أسميها 100 مرة في الرأي، وSELECT SQL يتم فقط في المرة الأولى. إذا وجدت أي مستخدم ثم نتيجة دعوة my_profile لا شيء، مما يجعل من الاسهل للتعامل مع القوالب التي تحتاج إلى أن تكون قادرة على التعامل مع المستخدمين غير المصادق (مثل عن الصفحة).
ملاحظة: إذا كنت تستخدم المثال members.UserProfile، سوف تحتاج إلى استدعاء أنه باستخدام request.my_userprofile.
مشاكل مع لبيثون "هو" تقييم و"نوع" المدمج في
إذا كنت تستخدم والتقييم قبل القيام بأي شيء آخر مع الكائن my_profile، وسوف تتصرف بطريقة غير متوقعة قليلا:
وسوف نعود دائما كاذبة. مثلا:
>>> الطباعة (request.my_profile هو لا يوجد)
زائف
>>> ع = request.user.get_profile ()
>>> الطباعة (request.my_profile هو ع)
زائف
أيضا، فإن نوع المدمج في إرجاع الكائن django.utils.functional.SimpleLazyObject:
>>> الطباعة (النوع)
<الفئة 'django.utils.functional.SimpleLazyObject'>
نضع في اعتبارنا ما يوضع في قيمة my_profile ليس المثال أو أي كائن ModelClass، وإنما هي django.utils.functional.SimpleLazyObject.
كيفية تقييم الكائن my_profile
استخدام == لتقييم الكائن my_profile. هذا يفرض الكائن ليتم تقييمها ولن يعود محبطة-ايجابيات كاذبة.
إلهام
واستلهم تحميل كسول لمحات من لا يصدق بدلا نوح Kantrowitz
الميزات:.
تحميل كسول الخاص بك سجل الملف موثق عبر عمر الكائن الطلب. وهذا يعني في رمز بيثون والقوالب.
اسم النموذج الخاص بك الشخصية أي شيء تريده في settings.AUTH_PROFILE_MODULE.
المتطلبات:
بيثون
جانغو
لم يتم العثور على التعليقات