Wpis z mikrobloga

Zapisuje sobię w modelu ścieżkę do pliku (nie korzystam z FileField w modelu tylko CharField), którą potem chce zamienić na tag w profilu admina w #django żeby go potem pobrać. Ścieżka mi się zapisuje, dodałem metodę nadpisującą wyświetlaną kolumnę, zezwoliłem na tagi - patrz Pastebin

Jednak ostatecznie w profilu dostaję to:

download zamiast linku.

Zawołam @b3rly bo jego pomoc zawsze jest nieoceniona ( ͡º ͜ʖ͡º)

Zależy mi, żeby w modelu zapisywała się tylko ścieżka, nie plik sam w sobie, a chyba to robi opcja FileField().
Ktokolwiek?

#python #naukaprogramowania
  • 13
@michael93pl: zapisuj osobno ściężke a osobno nazwę samego pliku, opcja safe powinna zadziałać :)

safe nie nadpisuje template - pozwala jedynie na parsowanie kawałka html

jak chesz zastąpić tamplate w admin to: https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#admin-overriding-templates

używaj FileField, ma sporo przydatnych zaimplementowanych funkcji ;)
https://docs.djangoproject.com/en/1.11/ref/models/fields/#django.db.models.fields.files.FieldFile

trzymasz te pdf w sprecyzowanej w settings.py scieżce MEDIAROOT ?

użyj mark
safe najlepiej: https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list%5Fdisplay
@b3rly: Nie mogłem się doczytać czy FileFiel na 100% nie zapisuje samego pliku a zależy mi, zeby tak nie było.

Mediaroot to absolute path, django krzyczało, że potrzebuję relative bez "/" na początku ale na sztywno jak ogarnąłem tę ścieżkę to efekt był taki, że nie pokazał w ogólę pliku (else w mojej funkcji).

Wszystkie trzymam w media
root właśnie, o mark_safe nigdy nie słyszałem, muszę stanowczo poczytać
@b3rly: Czy w teorii zwykły CharField i podanie ścieżki bez nazwy pdf'a + użycie jakoś safe może zadziałać? Bo się już w tym pogubiłem, znalazłem opcje jak np zamienić h1 w "admin/base_site.html" ale jak dostać się do mojego admin/pdfgenerator/items + tam wyświelić określony link z użyciem safe to już czarna magia oO
@b3rly: Dorwałem się do tego, jestem w miejscu, w którym mogę coś zmienić w tym konkretnym template ( drzewko zawsze na propsie ^^ )

Mam teraz coś takiego - w środku mam konkretny przykład elementu, który trzeba zmienić
paste

Powyższa opcja nadpisuje wszystko, jest link ale pojawia się error error:

http://127.0.0.1:8000/home/my/path/media/przetestowac.pdf_

Podpytuje tak dokładnie trochę nie bo jestem leniwy ale trochę chyba coś namieszałem -
-
@b3rly: Muszę to na spokojnie rozkminić i poczytać docsy, bo błądzę jak we mgle, klasycznie ;p coś z tym url'em jest spieprzone, wszystko poczytam i jutro po pracy kontynuuję ( ͡º ͜ʖ͡º)
@b3rly: Tak, to już kilka dni temu ogarnąłem ale z jakiegos powodu przy funkcji z modelu nie dzialalo allow.tags = True i cały czas miałem to samo - raw text zamiast tagu html'a
Nie mogłem tego znaleźć w żadnej odpowiedzi, parosowanie template'u admina mi się nie udawało, już się trochę poddawałem ale taka pierdoła to załatwiła ; p