Mam aplikację artykułów oraz komentarze do niej. W modelu artykułów mam metodę, która dla każdego artykułu zlicza mi komentarze, o taką. Problem polega na tym, że gdy wylistuję sobie na przykład 20 artykułów to generuje mi to pierdyliard zapytań do bazy. Stawiam, że ta metoda generuje mi nieoptymalne zapytanie, pytanie jak to poprawić?

#django #webdev
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@peterek93: select_related dla GenericForeignKey nie zadziała... wydaje mi się, że Twoja metoda odpytuje 2 razy DB dla każdego artykułu - to chyba nie jakaś tragedia.

To co mnie zastanawia to powiązanie komentarza z artykułem przez GenericForeignKey - piszesz metodę dla modelu "Artykuł", wniosek taki, że tylko dla artykułów będziesz miał komentarze - nie lepiej użyć FK zamiast GFK? Jeżeli jednak komentować będzie można również inne modele to wrzuć ten "counter"
  • Odpowiedz
Mam mały problem z #python i #django . (Znowu (,) )
Konkretnie chodzi o to że próbuję podłączyć system płatności do frameworka django-oscar. Jeszcze konkretniej chodzi o to, że oscar przechowuje dane o aktualnym zamówieniu w słowniku, zawierającym różne typy danych, np. Decimale porozrzucane po różnych klasach. Nie da się tego zserializować.
Żeby dokonać płatności, muszę zrobić przekierowanie na stronę, np. transferuj.pl, a potem
  • 19
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@blackyabbol: to możesz je odwzorować w bazie modelami i polecieć FK
Możesz zrobić model zamówienia z pierdyliardem pól
możesz zrobić model zamówienia z polami, w których będziesz trzymać słowniki tych wszystkich klas. Zainteresuj się polem JSONB w postgresie 9.4. Pola takie mogą trzymać jsona, można filtrować po wartościach z tych jsonów, cuda na kiju, panie.
  • Odpowiedz
@michael94: moim zdaniem podstawowa wiedza wystarczy. ja bez znajomości Pythona rzuciłem się na Django i sobie bez większychc problemów radzilem (tylko co prawda wczesniej pisałem trochę w C# i Javie, i rozumiałem MVC)
  • Odpowiedz
@Ilythiiri: Jak chcesz się nauczyć a nie zrobić jakiś projekt na odwal się, to czytaj oficjalny tutorial. createuser to metoda Managera który odpowiada za tabelę uzytkowników (django ma wbudowany ORM). renderto_reponse ma argument, którym pozwala przekazywać zmienne do szablonu - jest to właśnie słownik: {}.
  • Odpowiedz
Jak chcesz się nauczyć a nie zrobić jakiś projekt na odwal się, to czytaj oficjalny tutorial.


@maciej-jantarski: Właśnie zacząłem, po tym jak jesteś już którąś osobą która powtarza to jak mantrę. I to serio jest zajebiście wyjaśnione, krok po kroku, z opisem technicznym jak to naprawdę działa a nie na automagicznych zasadach z tutoriali.

Dzięki wielkie za pomoc, przeczytam wszystko jeszcze raz po czym będę kontynuować swój projekt ( ͡
  • Odpowiedz
Szukam dobrego sposobu na zliczanie odsłon dla artykułów czy innego contentu. Czy jeśli stworzę sobie odpowiedni do tego model z IP odwiedzających, datą i tak dalej, a potem templatetag, który będzie sprawdzał IP i ewentualnie ciasteczka to czy takie coś jest dobre? Czy tak się to robi?

#django #webdev
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Nowa oferta SSD i promocja

Właśnie MyDevil.net stał się jednym z najszybszych hostingów w Polsce - uruchomiliśmy nowe serwery oparte tylko i wyłącznie na super wydajnych dyskach SSD.
Każdy Klient może poczuć moc 400 000 IOPS już teraz - wystarczy skorzystać z nowej promocji: zniżka 20% na każde nowe konto na okres miesiąca, sześciu miesięcy lub jednego roku. Promocja "SSD" trwa do końca wakacji, regulamin jest dostępny na stronie: https://www.mydevil.net/regulaminy,7.html.

Zapraszamy do skorzystania
  • 20
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@MyDevil: jak zwykle klientowi na rękę, kurde, nawet mi raz odpisaliście w weekend o 2 w nocy - chyba już nigdy nie zmienię Waszej usługi na inną, no chyba, że zmienią się wymagania znacznie ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@qrooel: Zalecamy korzystanie z RVM:
https://wiki.mydevil.net/RVM
Dzięki czemu można zarządzać wieloma instalacjami interpretatora Ruby, instalować w swoim środowisku wybrane gemy. Aplikacje RoR podobnie jak Django, nodejs itd. hostujemy za pomocą Phusion Passenger. Passenger ubija proces przy braku ruchu ale uruchamia go automatycznie po wywołaniu witryny (wcześniejsza odpowiedź mogła wprowadzać w błąd).

https://wiki.mydevil.net/Ruby_on_Rails
  • Odpowiedz
Męczę się z odpaleniem połączenia MySQL w #django. Korzystam z #python'a 3.4, zainstalowane mam

mysql-connector-python==1.1.6


a także całą resztę typu apache/mysql. Niestety kiedy próbuje odpalić projekt dostaję następujący
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dlaczego to nie chce działać?

va = WebLink.objects.values_list('webpage').filter(alias = address_alias)
return HttpResponseRedirect(va)

W adresie pojawia się coś w rodzaju

(u'
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Matt23: Jeśli dochodzą kwadratowe nawiasy, to va jest listą tupli, va[0] jest pierwszym elementem listy, czyli tuplem a va[0][0] jest pierwszym elementem tupla, czyli stringiem. Spróbuj z return HttpResponseRedirect(va[0][0])
  • Odpowiedz
Witam Mirki i Mireczki!
Krótkie pytanie - jeśli w Django, w template chcę umieścić tylko 3 elementy z długiej listy z bazy danych (news) to jak to zrobić ?

Poniższy kod wyświetla mi całość:

{% for x in news %}
  • 14
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

last = [o for o in Exam.objects.orderby('date') if not o.ispast]


@marionez: świetny pomysł, iterować queryseta. Z każdym wykonaniem pętli wykonywać zapytanie do bazy danych.

chyba nie od lower than, bo nie ma
  • Odpowiedz
Jak zsynchronizować bazę danych? Próbowałem python manage.py syncdb, próbowałem z paramterem --all, próbowałem makemigrations, migrate, nic nie działa. Baza z rozszerzeniem sqlite3
#django #python
  • 20
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Matt23: Co znaczy nie działa? Masz initial migrations stworzone?

Syncdb jest deprecated od bodajże 1.7, używaj migrate.

Baza z rozszerzeniem sqlite3

no, a ja mam czarny laptop ( ͡º ͜ʖ͡º)
  • Odpowiedz
Witam Mirki i Mireczki,
Przed chwilą był podobny problem, więc uznałem ,że napiszę w celu uzyskania pomocy ( ͡° ͜ʖ ͡°)

Uczę się django, chciałem postawić sobie testowo stronkę w tym żeby się pouczyć no i trafiłem na problem:

Mam template, standardowy HTML zajumany z jakiegoś bootstrapa, i w
  • 18
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Ilythiiri: Ale w którym miejscu odesłałem cię do google? Pisałem z telefonu, więc nie miałem ochoty na grzebanie w dokumentacji. Podałem ci hasła, które powinny coś pomóc.

Próbowałeś odkomentować tego DefaultStorageFinder?
Według dokumentacji w sumie od którejśtam wersji nie musisz dodawać urlsów ręcznie o ile masz DEBUG = True. W sumie polecam na czas developmentu to ustawić.
  • Odpowiedz
@geekmaster: zanim Ty się za angulara weźmiesz, to ogarnij javascript sam w sobie, bo inaczej to będzie tak, jakbyś się bez doświadczenia zabierał do budowy domu przy pomocy maszyn budowlanych.

eloquent javascript (jest w necie za darmo w PL) lub książki Stoyana Stefanova.
  • Odpowiedz
@mirasek: Jeśli to development, to odpalasz używając manage.py runserver i on sam to ogarnia. Jak produkcja — to nie chcesz tego robić. A jeśli chcesz to popełniasz gdzieś błąd w rozumowaniu.
  • Odpowiedz