Deve ter uma função no Django que transforma "UmaStringAssim" em "Uma String Assim", porque ele faz isso no Admin. Mas eu passei meia hora vasculhando o código-fonte do Django 1.1 e não achei.
Em menos de meia hora eu poderia ter feito a minha própria função, mas quando se usa um framework não é uma boa idéia duplicar a funcionalidade que ele oferece nas nossas aplicações.
Então, alguém sabe onde fica a bendita função?
[ ]s Luciano
-- """ Many were increasingly of the opinion that they'd all made a big mistake in coming down from the trees in the first place. And some said that even the trees had been a bad move, and that no one should ever have left the oceans. (DA/HHGTTG) """
> Deve ter uma função no Django que transforma "UmaStringAssim" em "Uma > String Assim", porque ele faz isso no Admin. Mas eu passei meia hora > vasculhando o código-fonte do Django 1.1 e não achei.
> Em menos de meia hora eu poderia ter feito a minha própria função, mas > quando se usa um framework não é uma boa idéia duplicar a > funcionalidade que ele oferece nas nossas aplicações.
Pronto, resolvi assim:
>>> import re >>> s = 'UmTextoCaixaCamelo' >>> re.sub('(\w)([A-Z])', lambda m: m.group(1)+' '+m.group(2), s)
'Um Texto Caixa Camelo'
Mas eu ainda gostaria de saber onde uma coisa assim está implementada no Django, se alguém souber.
Valeu!
[ ]s Luciano
-- """ Many were increasingly of the opinion that they'd all made a big mistake in coming down from the trees in the first place. And some said that even the trees had been a bad move, and that no one should ever have left the oceans. (DA/HHGTTG) """
> 2010/2/5 Luciano Ramalho <luci...@ramalho.org>: > > Deve ter uma função no Django que transforma "UmaStringAssim" em "Uma > > String Assim", porque ele faz isso no Admin. Mas eu passei meia hora > > vasculhando o código-fonte do Django 1.1 e não achei.
> > Em menos de meia hora eu poderia ter feito a minha própria função, mas > > quando se usa um framework não é uma boa idéia duplicar a > > funcionalidade que ele oferece nas nossas aplicações.
> Mas eu ainda gostaria de saber onde uma coisa assim está implementada > no Django, se alguém souber.
> Valeu!
> [ ]s > Luciano
> -- > """ > Many were increasingly of the opinion that they'd all made a big > mistake in coming down from the trees in the first place. And some > said that even the trees had been a bad move, and that no one should > ever have left the oceans. (DA/HHGTTG) > """
> 2010/2/5 Luciano Ramalho <luci...@ramalho.org>: >> Deve ter uma função no Django que transforma "UmaStringAssim" em "Uma >> String Assim", porque ele faz isso no Admin. Mas eu passei meia hora >> vasculhando o código-fonte do Django 1.1 e não achei.
>> Em menos de meia hora eu poderia ter feito a minha própria função, mas >> quando se usa um framework não é uma boa idéia duplicar a >> funcionalidade que ele oferece nas nossas aplicações.
> Pronto, resolvi assim:
>>>> import re >>>> s = 'UmTextoCaixaCamelo' >>>> re.sub('(\w)([A-Z])', lambda m: m.group(1)+' '+m.group(2), s) > 'Um Texto Caixa Camelo'
> Mas eu ainda gostaria de saber onde uma coisa assim está implementada > no Django, se alguém souber.
O mais perto que eu cheguei até agora foi isso aqui (não testei):
> -- > """ > Many were increasingly of the opinion that they'd all made a big > mistake in coming down from the trees in the first place. And some > said that even the trees had been a bad move, and that no one should > ever have left the oceans. (DA/HHGTTG) > """
> 2010/2/5 Luciano Ramalho <luci...@ramalho.org>: >> 2010/2/5 Luciano Ramalho <luci...@ramalho.org>: >>> Deve ter uma função no Django que transforma "UmaStringAssim" em "Uma >>> String Assim", porque ele faz isso no Admin. Mas eu passei meia hora >>> vasculhando o código-fonte do Django 1.1 e não achei.
>>> Em menos de meia hora eu poderia ter feito a minha própria função, mas >>> quando se usa um framework não é uma boa idéia duplicar a >>> funcionalidade que ele oferece nas nossas aplicações.
>> Pronto, resolvi assim:
>>>>> import re >>>>> s = 'UmTextoCaixaCamelo' >>>>> re.sub('(\w)([A-Z])', lambda m: m.group(1)+' '+m.group(2), s) >> 'Um Texto Caixa Camelo'
>> Mas eu ainda gostaria de saber onde uma coisa assim está implementada >> no Django, se alguém souber.
> O mais perto que eu cheguei até agora foi isso aqui (não testei):
É curioso que a minha solução e a do Django usam lambda, mas em minha opinião a solução do Django usa o lambda sem motivo.
A utilidade do lambda é criar funções anônimas, para uso apenas em um contexto bem restrito. Se vocẽ usa o lambda para definir uma função e na mesma linha você atribui a uma variável para poder usá-la depois, deveria usar o def, que serve exatamente para criar uma função e associá-la a um nome!
-- """ Many were increasingly of the opinion that they'd all made a big mistake in coming down from the trees in the first place. And some said that even the trees had been a bad move, and that no one should ever have left the oceans. (DA/HHGTTG) """
> 2010/2/5 Rafael Sierra <rafaeljs...@gmail.com>: >> 2010/2/5 Luciano Ramalho <luci...@ramalho.org>: >>> 2010/2/5 Luciano Ramalho <luci...@ramalho.org>: >>>> Deve ter uma função no Django que transforma "UmaStringAssim" em "Uma >>>> String Assim", porque ele faz isso no Admin. Mas eu passei meia hora >>>> vasculhando o código-fonte do Django 1.1 e não achei.
>>>> Em menos de meia hora eu poderia ter feito a minha própria função, mas >>>> quando se usa um framework não é uma boa idéia duplicar a >>>> funcionalidade que ele oferece nas nossas aplicações.
>>> Pronto, resolvi assim:
>>>>>> import re >>>>>> s = 'UmTextoCaixaCamelo' >>>>>> re.sub('(\w)([A-Z])', lambda m: m.group(1)+' '+m.group(2), s) >>> 'Um Texto Caixa Camelo'
>>> Mas eu ainda gostaria de saber onde uma coisa assim está implementada >>> no Django, se alguém souber.
>> O mais perto que eu cheguei até agora foi isso aqui (não testei):
> A utilidade do lambda é criar funções anônimas, para uso apenas em um > contexto bem restrito. Se vocẽ usa o lambda para definir uma função e > na mesma linha você atribui a uma variável para poder usá-la depois, > deveria usar o def, que serve exatamente para criar uma função e > associá-la a um nome!
Sem duvida nenhuma a melhor opção do ponto de vista da leitura a melhor opção é a definição da função. Me sobram 2 sugestões e uma duvida:
1. Não seria interessante subir isso pra django-dev? 2. Por questões de performance, não valeria a pena fazer o cacheamento do verbose_name com base no class_name (acredito que não devido a essa função ser chamado poucas vezes e praticamente apenas no admin) 3. (Duvida) Existe algum ganho de performance -significante- em manter o lambda ou em utilizar o def? Acredito que não mas não tenho nenhum embasamento, é puro "achometro"
> [ ]s > Luciano
> -- > """ > Many were increasingly of the opinion that they'd all made a big > mistake in coming down from the trees in the first place. And some > said that even the trees had been a bad move, and that no one should > ever have left the oceans. (DA/HHGTTG) > """
> 2010/2/5 Luciano Ramalho <rama...@gmail.com>: > > 2010/2/5 Rafael Sierra <rafaeljs...@gmail.com>: > >> 2010/2/5 Luciano Ramalho <luci...@ramalho.org>: > >>> 2010/2/5 Luciano Ramalho <luci...@ramalho.org>: > >>>> Deve ter uma função no Django que transforma "UmaStringAssim" em "Uma > >>>> String Assim", porque ele faz isso no Admin. Mas eu passei meia hora > >>>> vasculhando o código-fonte do Django 1.1 e não achei.
> >>>> Em menos de meia hora eu poderia ter feito a minha própria função, mas > >>>> quando se usa um framework não é uma boa idéia duplicar a > >>>> funcionalidade que ele oferece nas nossas aplicações.
> > É curioso que a minha solução e a do Django usam lambda, mas em minha > > opinião a solução do Django usa o lambda sem motivo.
> Pois é...eu achei tão estranho que postei como "cheguei perto", > prefiri não arriscar um "achei!"
> > A utilidade do lambda é criar funções anônimas, para uso apenas em um > > contexto bem restrito. Se vocẽ usa o lambda para definir uma função e > > na mesma linha você atribui a uma variável para poder usá-la depois, > > deveria usar o def, que serve exatamente para criar uma função e > > associá-la a um nome!
> Sem duvida nenhuma a melhor opção do ponto de vista da leitura a > melhor opção é a definição da função. Me sobram 2 sugestões e uma > duvida:
> 1. Não seria interessante subir isso pra django-dev? > 2. Por questões de performance, não valeria a pena fazer o cacheamento > do verbose_name com base no class_name (acredito que não devido a essa > função ser chamado poucas vezes e praticamente apenas no admin) > 3. (Duvida) Existe algum ganho de performance -significante- em manter > o lambda ou em utilizar o def? Acredito que não mas não tenho nenhum > embasamento, é puro "achometro"
> > [ ]s > > Luciano
> > -- > > """ > > Many were increasingly of the opinion that they'd all made a big > > mistake in coming down from the trees in the first place. And some > > said that even the trees had been a bad move, and that no one should > > ever have left the oceans. (DA/HHGTTG) > > """
> Em 5 de fevereiro de 2010 22:08, Rafael Sierra <rafaeljs...@gmail.com> > escreveu:
>> 2010/2/5 Luciano Ramalho <rama...@gmail.com>: >> > 2010/2/5 Rafael Sierra <rafaeljs...@gmail.com>: >> >> 2010/2/5 Luciano Ramalho <luci...@ramalho.org>: >> >>> 2010/2/5 Luciano Ramalho <luci...@ramalho.org>: >> >>>> Deve ter uma função no Django que transforma "UmaStringAssim" em "Uma >> >>>> String Assim", porque ele faz isso no Admin. Mas eu passei meia hora >> >>>> vasculhando o código-fonte do Django 1.1 e não achei.
>> >>>> Em menos de meia hora eu poderia ter feito a minha própria função, >> >>>> mas >> >>>> quando se usa um framework não é uma boa idéia duplicar a >> >>>> funcionalidade que ele oferece nas nossas aplicações.
>> > É curioso que a minha solução e a do Django usam lambda, mas em minha >> > opinião a solução do Django usa o lambda sem motivo.
>> Pois é...eu achei tão estranho que postei como "cheguei perto", >> prefiri não arriscar um "achei!"
>> > A utilidade do lambda é criar funções anônimas, para uso apenas em um >> > contexto bem restrito. Se vocẽ usa o lambda para definir uma função e >> > na mesma linha você atribui a uma variável para poder usá-la depois, >> > deveria usar o def, que serve exatamente para criar uma função e >> > associá-la a um nome!
>> Sem duvida nenhuma a melhor opção do ponto de vista da leitura a >> melhor opção é a definição da função. Me sobram 2 sugestões e uma >> duvida:
>> 1. Não seria interessante subir isso pra django-dev? >> 2. Por questões de performance, não valeria a pena fazer o cacheamento >> do verbose_name com base no class_name (acredito que não devido a essa >> função ser chamado poucas vezes e praticamente apenas no admin) >> 3. (Duvida) Existe algum ganho de performance -significante- em manter >> o lambda ou em utilizar o def? Acredito que não mas não tenho nenhum >> embasamento, é puro "achometro"
>> > [ ]s >> > Luciano
>> > -- >> > """ >> > Many were increasingly of the opinion that they'd all made a big >> > mistake in coming down from the trees in the first place. And some >> > said that even the trees had been a bad move, and that no one should >> > ever have left the oceans. (DA/HHGTTG) >> > """