ปัญหานี้ดูคุ้นเคยดังนั้นฉันจึงคิดว่าฉันจะดูว่าสามารถจำลองข้อมูลจากข้อมูลที่ จำกัด ได้หรือไม่
การค้นหาอย่างรวดเร็วแสดงรายการในบล็อกของ James Bennett ที่นี่ซึ่งกล่าวถึงว่าเมื่อทำงานกับ UserProfile เพื่อขยายโมเดลผู้ใช้ข้อผิดพลาดทั่วไปใน settings.py อาจทำให้ Django โยนข้อผิดพลาดนี้
หากต้องการอ้างอิงรายการบล็อก:
ค่าของการตั้งค่าไม่ใช่ "appname.models.modelname" แต่เป็นเพียง "appname.modelname" เหตุผลก็คือ Django ไม่ได้ใช้สิ่งนี้ในการนำเข้าโดยตรง แทนที่จะใช้ฟังก์ชันโหลดโมเดลภายในซึ่งต้องการเพียงชื่อแอพและชื่อของโมเดล การพยายามทำสิ่งต่างๆเช่น "appname.models.modelname" หรือ "projectname.appname.models.modelname" ในการตั้งค่า AUTH_PROFILE_MODULE จะทำให้ Django ระเบิดขึ้นพร้อมกับข้อผิดพลาด "ค่ามากเกินไปที่จะคลายแพ็ก" ดังนั้นโปรดตรวจสอบว่าคุณ ใส่ "appname.modelname" และไม่มีอะไรอื่นในค่า AUTH_PROFILE_MODULE
หาก OP ได้คัดลอกการย้อนกลับมากขึ้นฉันคาดว่าจะเห็นบางอย่างเช่นด้านล่างซึ่งฉันสามารถทำซ้ำได้โดยการเพิ่ม "โมเดล" ในการตั้งค่า AUTH_PROFILE_MODULE ของฉัน
TemplateSyntaxError at /
Caught an exception while rendering: too many values to unpack
Original Traceback (most recent call last):
File "/home/brandon/Development/DJANGO_VERSIONS/Django-1.0/django/template/debug.py", line 71, in render_node
result = node.render(context)
File "/home/brandon/Development/DJANGO_VERSIONS/Django-1.0/django/template/debug.py", line 87, in render
output = force_unicode(self.filter_expression.resolve(context))
File "/home/brandon/Development/DJANGO_VERSIONS/Django-1.0/django/template/__init__.py", line 535, in resolve
obj = self.var.resolve(context)
File "/home/brandon/Development/DJANGO_VERSIONS/Django-1.0/django/template/__init__.py", line 676, in resolve
value = self._resolve_lookup(context)
File "/home/brandon/Development/DJANGO_VERSIONS/Django-1.0/django/template/__init__.py", line 711, in _resolve_lookup
current = current()
File "/home/brandon/Development/DJANGO_VERSIONS/Django-1.0/django/contrib/auth/models.py", line 291, in get_profile
app_label, model_name = settings.AUTH_PROFILE_MODULE.split('.')
ValueError: too many values to unpack
สิ่งนี้ฉันคิดว่าเป็นหนึ่งในไม่กี่กรณีที่ Django ยังคงมีเวทมนตร์นำเข้าอยู่เล็กน้อยซึ่งมีแนวโน้มที่จะทำให้เกิดความสับสนเมื่อข้อผิดพลาดเล็กน้อยไม่ได้ทำให้เกิดข้อยกเว้นที่คาดไว้
คุณสามารถดูได้ในตอนท้ายของการย้อนกลับที่ฉันโพสต์วิธีการใช้สิ่งอื่นนอกเหนือจากรูปแบบ "appname.modelname" สำหรับ AUTH_PROFILE_MODULE จะทำให้บรรทัด "app_label, model_name = settings.AUTH_PROFILE_MODULE.split ('.')" เพื่อโยน ข้อผิดพลาด "มีค่ามากเกินไปที่จะคลายแพ็ก"
ฉันแน่ใจ 99% ว่านี่เป็นปัญหาดั้งเดิมที่พบที่นี่