Aktywne Wpisy
Bayadasaurus +36
Opis moich przygód z kurtyzanami/escortkami/prostytutkami/sexworkerkami/#!$%@?/dziwkami/paniami lekkich obyczajów, od najlepszej do najgorszej
Miejsce 1: Jedyna u której byłem więcej niż raz a w zasadzie to cztery razy. Młoda, nie więcej jak 20-21 lat (mogła mieć nawet poniżej 20, twierdziła że ma 19). Cudowne długie włosy, dość duże cycki i - jako jedyna z sześciu - nieogolone wiadome miejsce intymne. Zero tatuaży co w przypadku późniejszych miejsc wcale nie takie oczywiste i słodka twarz
Miejsce 1: Jedyna u której byłem więcej niż raz a w zasadzie to cztery razy. Młoda, nie więcej jak 20-21 lat (mogła mieć nawet poniżej 20, twierdziła że ma 19). Cudowne długie włosy, dość duże cycki i - jako jedyna z sześciu - nieogolone wiadome miejsce intymne. Zero tatuaży co w przypadku późniejszych miejsc wcale nie takie oczywiste i słodka twarz
Piszę sobie prostą apkę, jestem na etapie dodawania kolejnych templatek. Mam sobie obiekt 'hero', który w 'recruitmentpoints' będzie miał wartość pomiędzy 0 a 4. Jeśli wartość będzie wynosiła 0, to ma się wyświelić jedna ikona (to mam), jak wartość jest większa niż 0 to ma się wyswietlić tyle razy inna ikona, ile ta wartość wynosi. Czyli jedna, dwie, trzy albo cztery ikony.
Banał. Jestem pewien, że już to robiłem.
Dokumentacja mówi, że można użyć funkcji range:
http://jinja.pocoo.org/docs/2.10/templates/#list-of-global-functions
to samo mówi stack overflow:
https://stackoverflow.com/questions/17691838/range-in-jinja2-inside-a-for-loop/17691875#17691875
{% for n in range(n) %}
Ja u siebie oczywiście mam:
{% for n in range(hero.recruitment_points) %}
ale nie działa. Błąd: Could not parse the remainder (
hero.recruitment_points
).Próbowałem to naprawić na kilka sposobów, ale nie mogę. Wygląda jakby metoda range powodowała problem. Tak uważam, ponieważ:
- usunąłem range, zostawiając samo "
for n in hero.recruitment_points
" - otrzymałem komunikat, którego się spodziewałem: "'int' is not iterable". Ale mam dowód, że widzi poprawnierecruitment_points
przy próbie utworzenia pentli.- zmieniłem recruitmentpoints na name (który jest stringiem): "
for n in hero.name
" i działa tak jak powinno, dodaje tyle razy wspomnianą wcześniej ikonę, ile 'name' ma w sobie liter. Zgadza się.- nawet próbowałem wstawić proste: "{% for n in range(5) %}" z przykładu z stackoverflow i otrzymałem ponownie: "Could not parse reminder (5) from 'range(5)'.
Jakieś pomysły?
ps: ewentualnymi literówkami w nazwach się nie przejmujcie, kod z mojej apki przepisywałem.
#python
https://stackoverflow.com/questions/1107737/numeric-for-loop-in-django-templates
Wygląda na ułomność django.
Widziałem tego linka ze stacka, ale tam odpowiedzi są sprzed wielu lat.
Komentarz usunięty przez autora
for n in range(5)
miałoby się wykonać 5 razy, afor n in "5"
wykona się tylko jeden raz. Uściślając: wykona się tyle razy, jak długi będzie string. A w moim przypadku stringi zawsze będą jednoznakowe.@Blotny: Myślałem nad różnymi sposobami obejścia tego. Ale to potencjalnie jest apka na której miałbym tłumaczyć przyjaciółce jak wygląda praca z Django i wolałbym, żeby te rozwiązania były w miarę czyste.
'x'*recruitment_ponts
i mieliby po czym pętle później robic :Dhttps://pastebin.com/Ejp2TEtP
rejestruje filter, który wywołany w template zwraca mi string w formacie:
znak 'f' - pełna gwiazdka
znak 'h' - pół gwiazki
znak 'e' - pusta gwiazdka
korzystam do tego z awesomefonts
rank to zmienna, która zawiera ocene - ilość gwiazdek ( u Ciebie recruitment_points )
{% if hero.recruitment_points == 1 %}
{% elif hero.recruitment_points == 2 %}
{% elif hero.recruitment_points == 3 %}
Więc wciaż brzydko. Bez pętli się tego 'względnie sensownie' chyba nie da zrobić.
Zdaję sobie sprawę jakie rozwiązanie się narzuca. Przygotowanie ikon:
recruitment_icon_1
-np. dla {% for star in 5|stars %} --> {% for star in "xxxxx" %}
a dalej to już możesz wyświetlać co chcesz te 5 razy :)
:D
Myślałem, żeby cos takiego w samej templatce zrobić. Wiesz, na zasadzie:
for i in hero.recruitment_points*'x'
ale nie udało mi się sprawić aby coś podobnie jednolinijkowego zadziałało. Wszelkie dużo większe rozwiazania traktuję z rezerwą trochę ;)
rejestrowanie filtra to żadna armata ;)