Využij akce až 30 % zdarma při nákupu e-learningu. Více informací. Zároveň je tento týden sleva až 80 % na e-learning týkající se C# .NET
Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
discount week 30 halloween

Diskuze: django - otvorenie textového súboru z db

Aktivity
Avatar
Michal
Člen
Avatar
Michal:28.10.2020 15:18

Dobrý deň,
mám menší problém s otvorením súboru v django python. Riešim webovú aplikáciu, pomocou ktorej viem nahrať nejaké údaje a textový súbor do db. Následne by som potreboval vypísať text z toho súboru na stránku. Problém mám s otvorením daného txt súboru. Takže jednoducho povedané neviem nijak docieliť to, aby som z modelu Document vytiahol len txt súbor a ostatné stĺpce neriešil. Skúšal som to nejako takto:

def CurrentDocument(request,pk):
    documents = open(Document.objects.get(pk=pk),'r')
    text = []
    for line in documents:
         text.append(line)
    documents.close()
    return render(request, "current_doc", {"text":text})

a Document z models.py vyzerá nejak takto :

class Document(models.Model):
    meno = models.CharField(max_length=50)
    document = models.FileField()

Vie mi niekto s týmto pomôcť? V pythone som začiatočník, moje skúseností sú Django tutorial z tohoto webu, takže všetko čo tu je som pozbieral zo všelijakých návodov. Ďakujem za akúkoľvek pomoc.

Zkusil jsem: Prehľadal som snáď celý google ale všade som našiel len ako otvoriť txt súbor z local storage.

Chci docílit: Riešim webovú aplikáciu pre svoju bakalársku prácu.

Editováno 28.10.2020 15:19
 
Odpovědět
28.10.2020 15:18
Avatar
Filip Němeček
Překladatel
Avatar
Filip Němeček:29.10.2020 7:55

Ahoj,

ty v tom svém kódu kombinuješ vytažení celého objektu a čtení souboru. Nejdřív bys měl vytáhnout objekt a až potom se věnovat

Takže zhruba takto:

documentObject = Document.objects.get(pk=pk)

lines = documentObject.document.read()

Moc jsem takto se soubory nepracoval, ale mělo by stačit použít read metodu takto (nabízí ji přímo FileField).

 
Nahoru Odpovědět
29.10.2020 7:55
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Michal
Člen
Avatar
Michal:29.10.2020 11:07

Ahoj,
viem o tom, že som to kombinoval, preto som písal o pomoc, pretože som to nevedel zapísať správne. Ďakujem ti za radu, už to beží, len keď som to otvoril podľa tvojho kódu tak to nešlo dobre, pretože mi to vypísalo len nejaké čísla. Súbor je potrebné otvoriť s parametrom read. Takže prikladám kód, ak by mal ešte niekto s týmto problém.

def CurrentDocument(request,pk):
    findPk = Document.objects.get(pk=pk)
    documents = findPk.document.open('r')
    text = []
    for line in documents:
         text.append(line)
    documents.close()
    return render(request, "current_doc.html", {"text":text})
Editováno 29.10.2020 11:07
Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět
29.10.2020 11:07
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.