Created
November 23, 2012 17:08
-
-
Save arthurfurlan/4136498 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ## voce estava usando o "verbose_name" da forma errada, vou colocar | |
| ## aqui da forma eu acredito que você deve estar querendo usar e | |
| ## qualquer coisa você me corrige :) | |
| class News(models.Model): | |
| ## ... bla bla bla, campos desse model que não interessa | |
| class NewsPhotos(models.Model): | |
| ## ... bla bla bla, campos desse model que não interessa | |
| news = models.ForeignKey(News, verbose_name="photos") ## presta atenção nesse nome "photos" | |
| ## pegar as fotos a partir de uma notícia que você já pegou | |
| news = get_object_or_404(News, pk=news_id) | |
| for photo in news.photos.all(): ## esse nome "photos" é o nome que eu usei no "verbose_name" | |
| print photo | |
| ## basicamente você não precisa pegar a lista de fotos separado, | |
| ## você pode usar da mesma forma como eu mostrei acima | |
| news_list = News.objects.all() | |
| for news in news_list: | |
| for photo in news.photos.all(): ## aqui ele vai rodar sempre um comando SQL para buscar a fotos | |
| pass | |
| ## nesse caso de cima, se você tiver 30 notícias vai executar 30 | |
| ## códigos 30 para buscar os 30 conjuntos de fotos... mas você | |
| ## pode otimizar isso dizendo para o django buscar as noticias *E* | |
| ## fotos das noticias tudo em único comando SQL, vocês faz isso | |
| ## assim: | |
| news_list = News.objects.select_related('photos').all() ## esse nome é o mesmo do verbose_name | |
| for news in news_list: | |
| for photo in news.photos.all(): ## aqui ele vai NÃO vai precisar rodar outro comando SQL | |
| pass | |
| ## nesse ultimo caso, você vai executar um único comando SQL que | |
| ## tem um JOIN e vai buscar todas as informações necessarias |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment