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

السؤال

نشر (معدل)

أنا أعمل في مشروع في جانغو Django وبدأت للتو في محاولة توسيع نموذج المستخدم (إضافة المزيد من الخصائص) لإنشاء ملفات تعريف للمستخدمين Profiles.

لكن واجهت مشكلة في كل مرة أحاول فيها الحصول على ملف تعريف المستخدم profile داخل قالب template ، أحصل على الخطأ التالي:

Hi, {{user.username}} ({{ user.get_profile.rep }}).

# الخطأ
Exception Type: TemplateSyntaxError at /
Exception Value: Caught an exception while rendering: too many values to unpack

ما سبب الخطأ الذي يحدث هنا وما الذي يجب أن أفعله لإصلاحه؟

تم التعديل في بواسطة Mohssen A Mohssen

Recommended Posts

  • 2
نشر (معدل)

عادة يحدث هذا الاستثناء لما نُحاول فك حزمة (a tuple) ، لكن الحزمة تحتوي على عدد كبير من القيم أكبر من المتغيرات التي نريد فك الحزمة فيها. مثال على ذلك:

def mehtod():
    return ("a","b","c") #الدالة تقوم بارجاع حُزمة فيها ثلاث قيم
a,b,c = mehtod()#نقوم بفك الحزمة في ثلاث متغيرات
                 # هنا لا يحصل خطأ
print a
>> "a"
print b
>> "b"
print c
>> "c"

# أما هنا يحصل خطأ
a,b = mehtod() # لأننا قمنا بفك الحزممة في عدد متغيرات أقل من حجم الحزمة

الآن ، لا أعرف سبب حدوث ذلك في حالتك ، ولكن ربما ستوجهك هذه الإجابة في الاتجاه الصحيح ان شاء الله.

تم التعديل في بواسطة مسعود زاهي
  • 1
نشر

هذا الخطء يستطيع ان ياتي من اي نوع من بيانات تسلسلية (list, dict, tuple, set).

مشكلك ليس واضح لكن قد يكون سبب ذلك هو إستعمال user و تمثيله ب dictionnary.

هل لديك يشبه هذا في برنامجك؟

first_names = ['foo', 'bar']

last_names = ['gravy', 'snowman']

fields = { 'first_names': first_names, 'last_name': last_names, }

for field, possible_values in fields:

   print(field, possible_values()

لان هذا البرنامج سياتي بنفس الخطء و حله يكون بزيادة ()items. 

first_names = ['foo', 'bar']
last_names = ['gravy', 'snowman']

fields = { 'first_names': first_names, 'last_name': last_names}

for field, possible_values in fields.items():

   print(field, possible_values)

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...