„Chciałbym, aby móc tworzyć raporty ... bez konieczności kodowania raporty”
więc I. Niestety, jednak każdy raport wydaje się być unikalny i wymaga niestandardowego kodu.
Od modelu Django do CSV jest łatwe. Zacznij tam z kilkoma raportami.
import csv
from myApp.models import This, That, TheOther
def parseCommandLine():
# setup optparse to get report query parameters
def main():
wtr= csv.DictWriter(sys.stdout, ["Col1", "Col2", "Col3"])
this, that = parseCommandLine()
thisList= This.objects.filter(name=this, that__name=that)
for object in thisList:
write.writerow(object.col1, object.that.col2, object.theOther.col3)
if __name__ == "__main__":
main()
HTML jest całkiem łatwy - Django ma język szablonów HTML. Zamiast render_to_response, po prostu wyrenderuj szablon i zapisz go na standardowe wyjście. A co ciekawe, rdzeń algorytmu jest bardzo podobny do pisania pliku CSV. Podobny do tego - bez dużej sprytu - powinieneś mieć wzór, który spełnia oba te warunki.
Po uruchomieniu pliku CSV dodaj kod HTML za pomocą szablonów Django.
Pliki PDF są trudniejsze, ponieważ trzeba szczegółowo opracować formatowanie. Istnieje wiele bibliotek Pythona. Co ciekawe, ogólny wzór pisania PDF jest bardzo podobny do pisania CSV i HTML.
Wysyłanie wiadomości e-mail oznacza użycie Pythona smtplib bezpośrednio lub pakietu Django email. To nie jest zbyt trudne. Wszystkie elementy są tam, wystarczy wysłać pocztą e-mail pliki wyjściowe wyprodukowane powyżej do pewnej listy dystrybucyjnej.
Planowanie wymaga trochę myślenia, aby jak najlepiej wykorzystać crontab
. To - być może - jest najtrudniejszą częścią pracy.
Bardzo ważna uwaga: XHML2PDF/Pisa jest licencjonowana na licencji GPL – sorin
Licencja komercyjna wynosi obecnie 500 EUR. – sorin
Dzięki za odpowiedzi Sorin –