Estou mexendo com Python agora. Achei uma meio bizarra.
Quando você lida com o objeto Form, existe uma propriedade chamada cleaned_data, que retorna dados do Form. Se você tenta usá-la sem usar o is_valid antes, dá erro como se a propriedade não existisse.
Ele não deveria dizer que a propriedade está nula?
Outra: ela é setada dentro do is_valid? Isso não se encaixa na anti-pattern de método acumulando função que não deveria?
http://stackoverflow.com/questions/4308527/django-model-form-object-has-no-attribute-cleaned-data
Fora essa, até agora estou gostando de Python.
quarta-feira, 19 de outubro de 2011
quinta-feira, 13 de outubro de 2011
Remove do List (C# e NHibernate)
Cara, essa é sacanagem... Escrevendo aqui quase como nota mental.
Na edição da minha entidade, eu tenho que atualizar lugares aos quais ela pertencia e não pertence mais, seus pais. Dados redundantes para ajudar na performance (isso dá um trabalho do c...). Pra isso, recupero a entidade do banco de "desprendo" (evict) da sessão do NH, para ter os antigos pais.
Peço para remover a entidade que estou mexendo na entidade pai. Porém, a que tenho na lista (pai) é a editada. A que recuperei do banco não está mais ali. Resultado: não adianta fazer um simples Remove.
Código para explicar melhor:
current = [Edição via usuário]
old = [recuperado do banco]
parent.list.Remove(old); < não funciona, por enquanto a lista tem o current
Até aí, qualquer um que entenda alguma coisinha sobre memória entende que os dois não se tratam do mesmo objeto. MAS EU VOU MORRER SEM ENTENDER PORQUE EM DEBUG FUNCIONAVA!!!
Na edição da minha entidade, eu tenho que atualizar lugares aos quais ela pertencia e não pertence mais, seus pais. Dados redundantes para ajudar na performance (isso dá um trabalho do c...). Pra isso, recupero a entidade do banco de "desprendo" (evict) da sessão do NH, para ter os antigos pais.
Peço para remover a entidade que estou mexendo na entidade pai. Porém, a que tenho na lista (pai) é a editada. A que recuperei do banco não está mais ali. Resultado: não adianta fazer um simples Remove.
Código para explicar melhor:
current = [Edição via usuário]
old = [recuperado do banco]
parent.list.Remove(old); < não funciona, por enquanto a lista tem o current
Até aí, qualquer um que entenda alguma coisinha sobre memória entende que os dois não se tratam do mesmo objeto. MAS EU VOU MORRER SEM ENTENDER PORQUE EM DEBUG FUNCIONAVA!!!
Assinar:
Postagens (Atom)