2017-11-17 1 views
0

Ich lade eine Datei mit der model.FileField-Methode hoch, aber ich weiß nicht, wie ich den Pfad der hochgeladenen Datei zurückgeben soll (ich kann den Pfad nicht wiederherstellen, da dies möglich ist) werden doppelte Dateien und die Bildname Änderungen)Django Datei-Upload - Pfad zur Datei

Views.py

if form.is_valid(): 

     newdoc = Invoices(docfile = request.FILES['docfile']) 
     newdoc.save() 

Models.py

class Invoices(models.Model): 
    docfile = models.FileField(upload_to='invoices/')  
    timestamp = models.DateTimeField(auto_now_add=True) 
    username = models.CharField(max_length=20, default="default_user") 

Ich habe einige Verweise auf document.uploaded_file Pfad usw. gefunden, aber sie werfen einen Fehler - kein Eigenschaftsdokument. Ist es möglich, mit der obigen Methode den tatsächlichen Pfad zur gespeicherten Datei einschließlich des möglicherweise geänderten Dateinamens zu erhalten?

Antwort

1

Sie können den vollständigen Dateisystempfad zu Ihrer Datei abrufen, indem Sie auf newdoc.docfile.path zugreifen. In einer Vorlage möchten Sie das Attribut {{ newdoc.docfile.url }} auf jeden Fall verwenden. Weitere Informationen finden Sie unter documentation on FileField.

+0

Perfekt und danke für den Link, v nützliche Referenz. – David