Size: a a a

Django [ru] #STAY HOME

2020 July 04

AS

Alexander Shavelev in Django [ru] #STAY HOME
hunnidolla
мне кажется в шарпе за 2 года сениорами становятся
лычки вещь неоднозначная
источник

AS

Alexander Shavelev in Django [ru] #STAY HOME
hunnidolla
мне кажется в шарпе за 2 года сениорами становятся
плюс ваши размышления чушь
источник

h

hunnidolla in Django [ru] #STAY HOME
это правда жизни
источник

AS

Alexander Shavelev in Django [ru] #STAY HOME
hunnidolla
это правда жизни
это хуйня)
источник

D

D in Django [ru] #STAY HOME
Привет! Кастомные теги для шаблонов — кто-нибудь копался в них? Доки и гугл не помогают.

Хочу сделать хитрый финт:
— если есть endblock, то логика типа parse until — то есть буду брать содержимое между ними и с ним работать,
— если конца нет — буду иначе.

Для этого на шаге компиляции запускаю парсер, если он не находит конца, то вызывает ошибку:
try:
   nodelist = parser.parse(('endsome',))
   parser.delete_first_token()
   return SomeNode(nodelist)
except TemplateSyntaxError as e:
   if 'endsome' in str(e):
       return SomeNode()

в темплейте:
{% some %}

Все идет нормально: он парсит, не находит закрывашку, идет по пути экспешона, и даже вызывает __init__ в SomeNode()
Но после — поднимает ошибку:
Unclosed tag on line 10: 'some'. Looking for one of: endblock.

Ошибка поднимается из 482-й строки:
https://github.com/django/django/blob/stable/3.0.x/django/template/base.py#L482

Можно его как-то остановить, мол Успокойся, нет там конца? Можно вообще такой финт сделать? Чего я не понимаю?
источник

N

Nire in Django [ru] #STAY HOME
D
Привет! Кастомные теги для шаблонов — кто-нибудь копался в них? Доки и гугл не помогают.

Хочу сделать хитрый финт:
— если есть endblock, то логика типа parse until — то есть буду брать содержимое между ними и с ним работать,
— если конца нет — буду иначе.

Для этого на шаге компиляции запускаю парсер, если он не находит конца, то вызывает ошибку:
try:
   nodelist = parser.parse(('endsome',))
   parser.delete_first_token()
   return SomeNode(nodelist)
except TemplateSyntaxError as e:
   if 'endsome' in str(e):
       return SomeNode()

в темплейте:
{% some %}

Все идет нормально: он парсит, не находит закрывашку, идет по пути экспешона, и даже вызывает __init__ в SomeNode()
Но после — поднимает ошибку:
Unclosed tag on line 10: 'some'. Looking for one of: endblock.

Ошибка поднимается из 482-й строки:
https://github.com/django/django/blob/stable/3.0.x/django/template/base.py#L482

Можно его как-то остановить, мол Успокойся, нет там конца? Можно вообще такой финт сделать? Чего я не понимаю?
На жаваскрипте не?
источник

D

D in Django [ru] #STAY HOME
Nire
На жаваскрипте не?
не, тут хочу
источник

N

Nire in Django [ru] #STAY HOME
D
не, тут хочу
Делай тег с открытием и закрытием, как фор, например
источник

N

Nire in Django [ru] #STAY HOME
У тебя странный какой-то, как бы есть, но нет
источник

D

D in Django [ru] #STAY HOME
я хочу и то, и то
с закрывашкой все нормально отрабатывает, а без — вот
источник

D

D in Django [ru] #STAY HOME
ну если по сути — я хочу ссылку генерить, чтоб или просто текст ссылкой, или картинку если суну
источник

N

Nire in Django [ru] #STAY HOME
D
ну если по сути — я хочу ссылку генерить, чтоб или просто текст ссылкой, или картинку если суну
Не понятно
источник

D

D in Django [ru] #STAY HOME
{% link 'some_name_for_reverse' %}
 <img src="img/path/" alt="">
{% endlink %}
или
{% link 'some_name_for_reverse' 'Some link' %}

а на выходе:
<a href="some/path/after/reverse/">
<img src="img/path/" alt="">
</a>
или
<a href="some/path/after/reverse/">Some link</a>
источник

N

Nire in Django [ru] #STAY HOME
А стандартный реверс чем плох?
источник

D

D in Django [ru] #STAY HOME
он выдает просто урл, а это будет html-тег
источник

N

Nire in Django [ru] #STAY HOME
Ты на имейдж можешь ссылку повесить жи, зачем тебе тег а?
источник

N

Nire in Django [ru] #STAY HOME
Текст лучше в p обернуть и тоже самое
источник

D

D in Django [ru] #STAY HOME
да? типа <img href="#">?
источник

N

Nire in Django [ru] #STAY HOME
Типа онклик-локатион.хреф
источник

D

D in Django [ru] #STAY HOME
а, хм, ну как вариант
источник