ฉันได้รับอาร์เรย์ที่arr
ส่งไปยังแม่แบบ Django ของฉัน ฉันต้องการเข้าถึงแต่ละองค์ประกอบของอาเรย์ในอาเรย์ (เช่นarr[0]
, arr[1]
) ฯลฯ แทนที่จะวนซ้ำทั้งอาเรย์
มีวิธีทำในเทมเพลต Django หรือไม่?
ฉันได้รับอาร์เรย์ที่arr
ส่งไปยังแม่แบบ Django ของฉัน ฉันต้องการเข้าถึงแต่ละองค์ประกอบของอาเรย์ในอาเรย์ (เช่นarr[0]
, arr[1]
) ฯลฯ แทนที่จะวนซ้ำทั้งอาเรย์
มีวิธีทำในเทมเพลต Django หรือไม่?
คำตอบ:
จำไว้ว่าเครื่องหมายจุดในเทมเพลต Django นั้นใช้สำหรับสัญกรณ์ที่แตกต่างกันสี่แบบใน Python ในเทมเพลตfoo.bar
สามารถหมายถึงใด ๆ ของ:
foo[bar] # dictionary lookup
foo.bar # attribute lookup
foo.bar() # method call
foo[bar] # list-index lookup
มันจะพยายามตามลำดับนี้จนกว่าจะพบการแข่งขัน ดังนั้นfoo.3
จะให้ดัชนีรายการของคุณแก่คุณเพราะวัตถุของคุณไม่ใช่ dict ที่มี 3 เป็นคีย์ไม่มีแอตทริบิวต์ชื่อ 3 และไม่มีวิธีชื่อ 3
foo['bar']
ใช่ไหม
arr.0
arr.1
เป็นต้น
คุณสามารถเข้าถึงองค์ประกอบลำดับด้วย arr.0 arr.1 และอื่น ๆ ดูบทระบบแม่แบบ Djangoของหนังสือ django สำหรับข้อมูลเพิ่มเติม
เมื่อคุณrender
ขอcoctext
ข้อมูลบางอย่าง: สำหรับ exampel:
return render(request, 'path to template',{'username' :username , 'email'.email})
คุณสามารถเห็นด้วยกับแม่แบบเช่นนี้:
for variabels :
{% if username %}{{ username }}{% endif %}
for array :
{% if username %}{{ username.1 }}{% endif %}
{% if username %}{{ username.2 }}{% endif %}
คุณยังสามารถตั้งชื่อวัตถุอาเรย์ในviews.py
สิบและใช้มันเช่น:
{% if username %}{{ username.first }}{% endif %}
หากมีปัญหาอื่น ๆ ฉันต้องการที่จะช่วยคุณ
arr.0
,arr.1
... วิธีแก้ไขปัญหาอื่น: เขียนแท็กเทมเพลตของคุณเองarr|array_item: "0"
หรืออะไรทำนองนี้