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

خطأ too many values to unpack في جانغو Django؟

Mohssen A Mohssen

السؤال

أنا أعمل في مشروع في جانغو 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...