Download link in template, when you have a model object with a filefield
up vote
0
down vote
favorite
Is it possible to make a download link in a html template, when you have a model object available, like this?
models.py
class Barcard(models.Model):
    name = models.CharField(max_length=30)
    drinks = models.ManyToManyField(Drink)
    barcardFile = models.FileField(blank=True, upload_to='barcard') 
    mixingFile = models.FileField(blank=True, upload_to='mixing') 
views.py
def download(request, barcard_id):
    if request.method == 'GET':
        barcard = get_object_or_404(Barcard, pk=barcard_id)
        return render(request, 'drinks/download.html', {'barcard':barcard})
    else:
        return HttpResponseRedirect('/drinks/')
template/drinks/download.html
{% extends "drinks/base.html" %}
{% block fulltitle %}Drinks{% endblock %}
{% block content %}
    <h1>{{ barcard.name }}</h1>
    <p> Download barkort her: <a href='{{ MEDIA_URL }}{{ barcard.barcardFile.relative_path }}'>{{barcard.name}} barkort</a> </p>
    <p> Download blandekort her: <a href='{{ MEDIA_URL }}{{ barcard.mixingFile.relative_path }}'>{{barcard.name}} blandekort</a></p>
{% endblock %}
Right now I don't get a file, when clicking the link. Have I missed something or will I have to do something completely different?
python django django-templates
New contributor
Hogfeldt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
up vote
0
down vote
favorite
Is it possible to make a download link in a html template, when you have a model object available, like this?
models.py
class Barcard(models.Model):
    name = models.CharField(max_length=30)
    drinks = models.ManyToManyField(Drink)
    barcardFile = models.FileField(blank=True, upload_to='barcard') 
    mixingFile = models.FileField(blank=True, upload_to='mixing') 
views.py
def download(request, barcard_id):
    if request.method == 'GET':
        barcard = get_object_or_404(Barcard, pk=barcard_id)
        return render(request, 'drinks/download.html', {'barcard':barcard})
    else:
        return HttpResponseRedirect('/drinks/')
template/drinks/download.html
{% extends "drinks/base.html" %}
{% block fulltitle %}Drinks{% endblock %}
{% block content %}
    <h1>{{ barcard.name }}</h1>
    <p> Download barkort her: <a href='{{ MEDIA_URL }}{{ barcard.barcardFile.relative_path }}'>{{barcard.name}} barkort</a> </p>
    <p> Download blandekort her: <a href='{{ MEDIA_URL }}{{ barcard.mixingFile.relative_path }}'>{{barcard.name}} blandekort</a></p>
{% endblock %}
Right now I don't get a file, when clicking the link. Have I missed something or will I have to do something completely different?
python django django-templates
New contributor
Hogfeldt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
Is it possible to make a download link in a html template, when you have a model object available, like this?
models.py
class Barcard(models.Model):
    name = models.CharField(max_length=30)
    drinks = models.ManyToManyField(Drink)
    barcardFile = models.FileField(blank=True, upload_to='barcard') 
    mixingFile = models.FileField(blank=True, upload_to='mixing') 
views.py
def download(request, barcard_id):
    if request.method == 'GET':
        barcard = get_object_or_404(Barcard, pk=barcard_id)
        return render(request, 'drinks/download.html', {'barcard':barcard})
    else:
        return HttpResponseRedirect('/drinks/')
template/drinks/download.html
{% extends "drinks/base.html" %}
{% block fulltitle %}Drinks{% endblock %}
{% block content %}
    <h1>{{ barcard.name }}</h1>
    <p> Download barkort her: <a href='{{ MEDIA_URL }}{{ barcard.barcardFile.relative_path }}'>{{barcard.name}} barkort</a> </p>
    <p> Download blandekort her: <a href='{{ MEDIA_URL }}{{ barcard.mixingFile.relative_path }}'>{{barcard.name}} blandekort</a></p>
{% endblock %}
Right now I don't get a file, when clicking the link. Have I missed something or will I have to do something completely different?
python django django-templates
New contributor
Hogfeldt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
Is it possible to make a download link in a html template, when you have a model object available, like this?
models.py
class Barcard(models.Model):
    name = models.CharField(max_length=30)
    drinks = models.ManyToManyField(Drink)
    barcardFile = models.FileField(blank=True, upload_to='barcard') 
    mixingFile = models.FileField(blank=True, upload_to='mixing') 
views.py
def download(request, barcard_id):
    if request.method == 'GET':
        barcard = get_object_or_404(Barcard, pk=barcard_id)
        return render(request, 'drinks/download.html', {'barcard':barcard})
    else:
        return HttpResponseRedirect('/drinks/')
template/drinks/download.html
{% extends "drinks/base.html" %}
{% block fulltitle %}Drinks{% endblock %}
{% block content %}
    <h1>{{ barcard.name }}</h1>
    <p> Download barkort her: <a href='{{ MEDIA_URL }}{{ barcard.barcardFile.relative_path }}'>{{barcard.name}} barkort</a> </p>
    <p> Download blandekort her: <a href='{{ MEDIA_URL }}{{ barcard.mixingFile.relative_path }}'>{{barcard.name}} blandekort</a></p>
{% endblock %}
Right now I don't get a file, when clicking the link. Have I missed something or will I have to do something completely different?
python django django-templates
python django django-templates
New contributor
Hogfeldt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Hogfeldt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Hogfeldt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
asked Nov 5 at 17:00
Hogfeldt
124
124
New contributor
Hogfeldt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
New contributor
Hogfeldt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
Hogfeldt is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
add a comment |
add a comment |
                                1 Answer
                                1
                        
active
oldest
votes
up vote
1
down vote
accepted
What makes you think there is a relative_path attribute? You need to use the url attribute, which includes the media_url prefix.
<a href='{{ barcard.barcardFile.url }}'>
See the FileField docs.
 
 
 
 
 
 
 This worked, thanks. Regarding the- relative_pathattribute, I was looking at someone else's code, but couldn't get it to work. Missed that they had defined a function- relative_path(self). This solution thou is much more what i wanted. ;)
 – Hogfeldt
 Nov 5 at 17:20
 
 
 
add a comment |
                                1 Answer
                                1
                        
active
oldest
votes
                                1 Answer
                                1
                        
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
What makes you think there is a relative_path attribute? You need to use the url attribute, which includes the media_url prefix.
<a href='{{ barcard.barcardFile.url }}'>
See the FileField docs.
 
 
 
 
 
 
 This worked, thanks. Regarding the- relative_pathattribute, I was looking at someone else's code, but couldn't get it to work. Missed that they had defined a function- relative_path(self). This solution thou is much more what i wanted. ;)
 – Hogfeldt
 Nov 5 at 17:20
 
 
 
add a comment |
up vote
1
down vote
accepted
What makes you think there is a relative_path attribute? You need to use the url attribute, which includes the media_url prefix.
<a href='{{ barcard.barcardFile.url }}'>
See the FileField docs.
 
 
 
 
 
 
 This worked, thanks. Regarding the- relative_pathattribute, I was looking at someone else's code, but couldn't get it to work. Missed that they had defined a function- relative_path(self). This solution thou is much more what i wanted. ;)
 – Hogfeldt
 Nov 5 at 17:20
 
 
 
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
What makes you think there is a relative_path attribute? You need to use the url attribute, which includes the media_url prefix.
<a href='{{ barcard.barcardFile.url }}'>
See the FileField docs.
What makes you think there is a relative_path attribute? You need to use the url attribute, which includes the media_url prefix.
<a href='{{ barcard.barcardFile.url }}'>
See the FileField docs.
answered Nov 5 at 17:08
Daniel Roseman
437k40565622
437k40565622
 
 
 
 
 
 
 This worked, thanks. Regarding the- relative_pathattribute, I was looking at someone else's code, but couldn't get it to work. Missed that they had defined a function- relative_path(self). This solution thou is much more what i wanted. ;)
 – Hogfeldt
 Nov 5 at 17:20
 
 
 
add a comment |
 
 
 
 
 
 
 This worked, thanks. Regarding the- relative_pathattribute, I was looking at someone else's code, but couldn't get it to work. Missed that they had defined a function- relative_path(self). This solution thou is much more what i wanted. ;)
 – Hogfeldt
 Nov 5 at 17:20
 
 
 
This worked, thanks. Regarding the
relative_path attribute, I was looking at someone else's code, but couldn't get it to work. Missed that they had defined a function relative_path(self). This solution thou is much more what i wanted. ;)– Hogfeldt
Nov 5 at 17:20
This worked, thanks. Regarding the
relative_path attribute, I was looking at someone else's code, but couldn't get it to work. Missed that they had defined a function relative_path(self). This solution thou is much more what i wanted. ;)– Hogfeldt
Nov 5 at 17:20
add a comment |
Hogfeldt is a new contributor. Be nice, and check out our Code of Conduct.
Hogfeldt is a new contributor. Be nice, and check out our Code of Conduct.
Hogfeldt is a new contributor. Be nice, and check out our Code of Conduct.
Hogfeldt is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53158902%2fdownload-link-in-template-when-you-have-a-model-object-with-a-filefield%23new-answer', 'question_page');
}
);
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password