🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #27790

Re: Znowy Django i znowu pewnie banał

#27790
From: Przemek Miećkowski
Date: Tue, 09 Nov 2010 09:05
50 lines
3079 bytes
On 9 Lis, 08:53, zbro...@tlen.pl wrote:
> On 09.11.2010 00:12, ds wrote:
>
>
>
>
>
>
>
>
>
> > Łukasz Rekucki wrote:
>
> >> On Nov 8, 11:07 pm, ds<ad...@email.pl>  wrote:
> >>> Łukasz Rekucki wrote:
> >>>> Co rozumiesz przez wpisy z "dwu tabel" (ew. dwóch tabel) ? Jeśli to są
> >>>> różne modele (mają różne klasy), to nie możesz zrobić zapytanie, które
> >>>> zwraca ich mieszankę.
>
> >>> No właśnie mam dwie klasy i dwie tabele - czyli muszę pobrać z obu
> >>> oddzielnie i sobie posortować?
>
> >> Tak musisz zrobić 2 zapytania, tak samo jak w SQL.
>
> > Zrobiłem tak:
>
> > DATA1 i DATA2 to moje klasy
>
> > data = list(DATA1.objects.order_by('-date')[:15])
> > data.extend(list(DATA2.objects.order_by('-date')[:15]))
> > data.sort(key=operator.attrgetter('date'), reverse=True)
>
> > Potrzebowałem to do feeda. Dzięki za wskazówki
>
> Możesz napisać własnego managera (zastępującego domyślny manager objects
> albo będący dodatkowym managerem dla tego modelu, to już jak Ci
> wygodniej) i użyć w nim raw query. Ściągnięcie danych z dwóch tabel
> jednym selectem wykonasz operatorem UNION, tylko pamiętaj że domyślnie
> UNION z tego co pamiętam eliminuje duplikaty).
>
> J.

W celu eliminacji duplikatów w UNION można w obu selectach użyć:
1 as `my_unique`
0 as `my unique`,

także każde zapytanie będzie miało inną wartość my_unique.

Ten sposób pozwala też na budowanie UNION, gdy w jeden tabeli brak
jakiegoś pola z drugiej tabeli.
Technical Details
Message-ID: <2b41586a-5562-45bc-805a-2b7bc00199e9@j25g2000yqa.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!proxad.net!feeder1-2.proxad.net!74.125.46.80.MISMATCH!postnews.google.com!j25g2000yqa.googlegroups.com!not-for-mail
References: <ib9n1e$ocr$1@news.onet.pl> <44623596-010d-43ef-9a39-7a1a3b7ec4d9@r14g2000yqa.googlegroups.com> <ib9sbc$ai4$1@news.onet.pl> <bd6bce6b-0477-4aad-a938-3033f36942a1@30g2000yql.googlegroups.com> <iba04b$kpc$1@news.onet.pl> <4CD8FDE2.6000009@tlen.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!news.nask.pl!news.nask.org.pl!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!proxad.net!feeder1-2.proxad.net!74.125.46.80.MISMATCH!postnews.google.com!j25g2000yqa.googlegroups.com!not-for-mail
From: Przemek Miećkowski <p.mieckowski@gmail.com>
Newsgroups: pl.comp.lang.python
Subject: Re: Znowy Django i znowu pewnie banał
Date: Tue, 9 Nov 2010 01:05:25 -0800 (PST)
Organization: http://groups.google.com
Lines: 56
Message-ID: <2b41586a-5562-45bc-805a-2b7bc00199e9@j25g2000yqa.googlegroups.com>
References: <ib9n1e$ocr$1@news.onet.pl> <44623596-010d-43ef-9a39-7a1a3b7ec4d9@r14g2000yqa.googlegroups.com> <ib9sbc$ai4$1@news.onet.pl> <bd6bce6b-0477-4aad-a938-3033f36942a1@30g2000yql.googlegroups.com> <iba04b$kpc$1@news.onet.pl> <4CD8FDE2.6000009@tlen.pl>
NNTP-Posting-Host: 85.202.53.28
Mime-Version: 1.0
X-Trace: posting.google.com 1289293526 21614 127.0.0.1 (9 Nov 2010 09:05:26 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Tue, 9 Nov 2010 09:05:26 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: j25g2000yqa.googlegroups.com; posting-host=85.202.53.28; posting-account=Kko7tAoAAAAWnbZPL9uFL7OjaNd3Tw-a
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.28 Safari/534.10,gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit