2009-11-09 45 views
132

Tôi nhận được một mảng arr được chuyển tới mẫu Django của tôi. Tôi muốn truy cập các phần tử riêng lẻ của mảng trong mảng, ví dụ: arr[0], arr[1] vv thay vì lặp qua toàn bộ mảng.Làm thế nào để truy cập các phần tử mảng trong một mẫu Django?

Có cách nào để thực hiện điều đó trong mẫu Django không?

Cảm ơn bạn.

+1

Bạn có thể truy cập vào mục như thế này 'arr .0', 'arr.1', ... Một giải pháp khác: viết thẻ mẫu của riêng bạn' arr | array_item: "0" 'hoặc một cái gì đó như thế này. – rphonika

+1

@rphonika Có, ví dụ ở đây: http://stackoverflow.com/a/29664945/2714931 – WeizhongTu

Trả lời

116
arr.0 
arr.1 

, vv

+6

cách in động như cũ: arr.variablename – karnaf

+0

Có cách nào để thực hiện điều này mà không có số ma thuật không? Nói cách khác để "đặt tên" là .0 .1 .2 etc ...? Chẳng hạn như mảng ["tên đầu tiên"], mảng ["họ"], v.v. – cyberjoac

+0

@cyberjoac trong trường hợp đó sử dụng lệnh dict. Trong chế độ xem: d = {'first_name': 'foo', 'last_name': 'bar'}. Trong mẫu {{d.first_name}} sẽ hoạt động tốt. –

267

Hãy nhớ rằng các ký hiệu dấu chấm trong một mẫu Django được sử dụng trong bốn ký hiệu khác nhau trong Python. Trong một mẫu, foo.bar thể có nghĩa là bất kỳ:

foo[bar]  # dictionary lookup 
foo.bar  # attribute lookup 
foo.bar()  # method call 
foo[bar]  # list-index lookup 

Nó cố gắng chúng theo thứ tự này cho đến khi nó tìm thấy một trận đấu. Vì vậy, foo.3 sẽ giúp bạn lập chỉ mục danh sách của bạn vì đối tượng của bạn không phải là dict với 3 là khóa, không có thuộc tính có tên 3 và không có phương thức có tên 3.

+1

** + 1 ** Chúc mừng, điều này vô cùng hữu ích. –

+2

Không phải là đầu tiên và cuối cùng giống như 'foo ['bar']'? –

+2

Dường như không có cách nào để truy cập vào mục danh sách bằng cách sử dụng chỉ mục biến: ( –

2

khi bạn render yêu cầu tou coctext một số thông tin: cho exampel:

return render(request, 'path to template',{'username' :username , 'email'.email}) 

bạn có thể acces để nó trên mẫu như thế này: for variabels :

{% if username %}{{ username }}{% endif %} 

for array :

{% if username %}{{ username.1 }}{% endif %} 
{% if username %}{{ username.2 }}{% endif %} 

bạn cũng có thể đặt tên cho đối tượng mảng trong views.py và mười sử dụng nó như:

{% if username %}{{ username.first }}{% endif %} 

nếu có vấn đề khác tôi muốn giúp bạn

Các vấn đề liên quan