Aktywne Wpisy
![wieszjo](https://wykop.pl/cdn/c0834752/59b4ad1d5f5e9473fbd7fbfe10875924291241304ebf0ba0257d5d84554d6d12,q60.jpg)
wieszjo +1295
10 PLUSÓW POD TYM WPISEM = 1 KOD PPV DLA WYKOPKÓW ( ͡° ͜ʖ ͡°) np 100 plusów = 10 kodów ppv
@Bezi77 To już tradycja przed galami PRIME. Na ostatnich galach akcja odbiła się szerokim echem i bardzo dużo plusów było, akcja trwa do momentu aż @Bezi77 nie powie stop :) Ostatnio oskubaliśmy @Bezi77 na 34 kody PPV = 1360 zł, na ile tym razem oskubiemy? (
@Bezi77 To już tradycja przed galami PRIME. Na ostatnich galach akcja odbiła się szerokim echem i bardzo dużo plusów było, akcja trwa do momentu aż @Bezi77 nie powie stop :) Ostatnio oskubaliśmy @Bezi77 na 34 kody PPV = 1360 zł, na ile tym razem oskubiemy? (
![wieszjo - 10 PLUSÓW POD TYM WPISEM = 1 KOD PPV DLA WYKOPKÓW ( ͡° ͜ʖ ͡°) np 100 plusów...](https://wykop.pl/cdn/c3201142/69bf13bb82fb54023f24fff64a4fbfd2f86df324b030c59819cea4667bc662a3,w150.png?author=wieszjo&auth=9eaea06d7b9cd53dc90dc933ca35f648)
źródło: obraz_2024-01-13_132050481
Pobierz![Bardamu](https://wykop.pl/cdn/c3397992/Bardamu_gmieD7eTV8,q60.jpg)
Bardamu +136
Co robi Brad Pitt mając miliony jak nie miliardy dolarow na koncie? Jeździ starym SUVem Volkswagena, który jest pojemny, wygodny i bezpieczny, więc nie ma sensu go zmieniać.
Co robi #p0lak, który założy działalność z dochodem >6k złotych miesięcznie? Połowę wydaje na leasing Mercedesa A - klasy AMG.
#samochody
Co robi #p0lak, który założy działalność z dochodem >6k złotych miesięcznie? Połowę wydaje na leasing Mercedesa A - klasy AMG.
#samochody
![Bardamu - Co robi Brad Pitt mając miliony jak nie miliardy dolarow na koncie? Jeździ ...](https://wykop.pl/cdn/c3201142/c3d24978ca507b9ce06ce379ec596fe57dfd8480b79db58bee95f7aff22b7c9e,w150.jpg?author=Bardamu&auth=ae82b3d2942f70c1bbf12968f247822b)
Mirki, chcę na serwerze odpalać periodic task, który co x minut będzie odpytywał model i sprawdzał czy są w nim maile do wysłania.
Całą resztę ogarnąłem ale mam problem do stworzenia odpowiedniego query w managerze, który ma działać w następujący sposób:
1) w managerze określam aktualną datę(currentdate)
2) w zależności od rodzaju emaila, wybieram okres, po którym ma zostać wysłany(delta) - ponieważ te okresy są dynamiczne, musi być to liczone od aktualnej daty)
3) jeżeli minął określony przeze mnie okres, queryset ma zwrócić te obiekty
Poniżej wrzucam prove of concept, które wywala się oczywiście na tym kawałku
((currentdate - F('created_at')).seconds
dalej wywali się też na delta > 0 ale tak jak mówię, to tylko prove of concept
delta = 60 * 1 * 5
currentdate = timezone.now()
qs = self.annotate(passed=((currentdate - F('created_at')).seconds // delta > 0)).filter(passed=True)
nie wiem czy nie próbuję tego przekombinować trochę, anyway, za każdą poradę będę wdzięczny
AttributeError: 'CombinedExpression' object has no attribute 'seconds'
((currentdate - F('createdat')).seconds nie ewaluuje się do datetime.timedelta object ale do CombinedExpression
kombinowałem też z ExpressionWrapper ale bez efektu
delta = 60 * 1 * 5
sendafter = timezone.now() + datetime.timedelta(seconds=delta)
i wtedy robisz porównanie currentdate z sendafter, który jest oiektem datetime i nie musisz nic kombinować z sekundami
sendafter nic mi nie da jako obiekt datetime, ponieważ musze porownac createdat(DateTimeField w modelu z autoaddnow) do czasu now() i czy minęło od created at 5 minut
delta = 60 * 1 * 5
sendafter = timezone.now() - datetime.timedelta(seconds=delta)
self.filter(createdat_gte=sendafter)
test:
obiekt1.createdat = 12:00
obiekt2.createdat = 12:10
now = 12:12
sendafter = 12:12 - 3min = 12:09
self.filter(createdat_gte=sendafter) <--- ten filter zwroci tylko obiekt2, bo czas jego utworzenia jest większy niż send after.
poczytaj dokumentacje o filtrach:
https://docs.djangoproject.com/en/2.2/ref/models/querysets/#field-lookups
szczególnie o czasie
mam nadzieje że zrozumiałem o co Ci
Muszę znaleźć ile wynosi różnica pomiędzy
now() a wartością w polu createdat i jeżeli wynosi więcej niż delta to zwrócić ten obiekt w qs
coś pokroju:
self.annotate(foo=(Sum(F('createdat) - currentdate)) ale obv lokalnie mam tylko sqllite, na którym agregacja przez Sum nie działa, a właśnie wychodzę i nie zdarze przepiąć
prze systemd śmiga mi proces co x minut, ktory wyciągać te obiekty z bazy i jeżeli mail jest już gotowy do wysłania do przekazuje buduje obiekt maila wraz z contextem i templatem, a następnie przekazuje go przez adapter to zewnętrznego dostawcy usługi wysyłania maili
Muszę tylko osiągnąć to, co przedstawia mój przykład ale ciągle nie wiem jak :/
dobra, udalo sie, nie jest eleganckie ale działa
qs = self.annotate(sendat=Sum(
currentdate - F('createdat'))).filter(sendat__gt=Sum(timezone.timedelta(seconds=delta)))
idea byla taka, zeby maile wysylaly sie po wypelnieniu formularza tak dlugo(okresy x, y,z) az klient nie wypelni okreslonego warunku, ktorego stan zmieni sie dopiero wtedy, gdy zewnetrzny dostawca uslugi da mi o tym znac