을 verbose_name (즉 verbose from template-tag, iterate over field names, iterate through models 및 few, more ...)장고 : 루핑 또는 필드 이름의 반복과 내가 주위에 "관련/중복"대부분의 질문을 읽은 생각
불행하게도 저는 장고 n00b이기 때문에 손을 잡을 필요가 있습니다. 작동하지 않는 것처럼 보입니다. 단지
{% if data.first_name %}
First Name: {{ data.first_name }}
{% endif %}
위로 fourty 시간을 4 ~ 5 섹션
<!-- this in some section of the template -->
First Name : . Joe
Last Name : .. Blogs
<!-- this in another section -->
City: ....... Xanadu
Country: ..... Mongolia
Occupation: .. Programmer
<!-- this in another section of the template -->
Age: ......... 75
Height: ...... 180 cm
Eye color: .. red
10 개 가능한 필드는 각 I 원하지 않는 : 여기가 HTML에서 원하는 결과입니다! : -/... 그래서 여기에 (대략) 내 시도입니다 :
model.py
class GenericPerson(models.Model):
first_name = models.CharField(_('First Name'),
max_length = 200,
help_text = _('What is your name?'))
last_name = models.CharField(_('Last Name'),
max_length = 200,
help_text = _('What is your name?'))
etc, etc ...
class Meta:
abstract = True
class Person(GenericPerson):
age_in_years = models.PositiveIntegerField(_('Age'),
null = True,
blank = True,
help_text=_('When was you born?, mate'))
location = models.ForeignKey(GeographicalProfile,
verbose_name=_('geolocations'),
null = True,
blank = True)
height = ... etc, etc.
views.py
...
try:
person = Person.objects.filter(pk=product_id)
except Person.DoesNotExist:
raise Http404
generaldata = person.values('first_name',
'last_name',
etc, etc,
)[0]
localdata = person.values('city',
'country',
etc, etc
)[0]
physicaldata = person.values('age',
'height',
'eye_color',
etc, etc
)[0]
extra_context[data] = generaldata
extra_context[loc] = localdata
extra_context[phys] = physicaldata
return render_to_response(template_name, extra_context ,context_instance=RequestContext(request))
해당 뷰를 사용하여, 나는
을 할 수template.html
{% for p in phys.items %}
<ul>
{% if p.1 %}
<li>{{p.0}} : {{p.1}}</li>
{% endif %}
</ul>
{% endfor %}
다른 섹션. 하지만이 필드는 age_in_years, eye_color (이름 대신)로 반환됩니다. 자, 위의 글에서, 그래서 지금 ...이 {{뭔가를 사용하는 맹목적으로 시도했다, 템플릿 {% 부하 person_extras의 %}에서로드,
from django import template
register = template.Library()
@register.filter
def get_name(object):
return object._meta.verbose_name # put here whatever you would like to return
register.tag('get_name', get_name)
을 사용자 정의 템플릿 태그를 생성
'STR'개체가 어떤 속성 '_meta을'이없는
'목록'개체가 어떤 속성 '_meta을'이없는 : | 템플릿 도처 get_object_name}} ...하지만 이해없이 내 폭력은 저를 준다
'튜플'객체에는 att가 없습니다. ribute '_meta'
'DICT'개체 내가이 템플릿 태그를 사용합니까 어떤 속성 '_meta'
'ValuesQuerySet'개체가 어떤 속성 '_meta'그래서
가 없습니다를,이 없다? 또는 for-loop에서이 템플릿 태그를 사용하도록 내보기를 수정하려면 어떻게해야합니까? 당신이 person = Person.objects.filter(pk=product_id)
이 QuerySet
People
의 객체를 반환합니다 호출하면
에서
지금은 명확한 설명 주셔서 감사합니다. 그것은 긴 꼬인 검색을 해결! 템플릿 코드를 편집하여 템플릿에서 호출하는 필터의 이름이 위에서 정의한 이름과 동일한 지 확인하고 필터링하는 "객체"가 루프 처리되는 것을 확인합니다. 건배 – Massagran