@@ -55,7 +55,27 @@ It's time to open `blog/templates/blog/base.html` in the code editor. In the `di
5555
5656Note that we want to call our new view ` post_new ` . The [ svg icon] ( https://icons.getbootstrap.com/icons/file-earmark-plus/ ) is provided by the [ Bootstrap Icons] ( https://icons.getbootstrap.com/ ) and it will display a page icon with plus sign.
5757
58- After adding the line, your HTML file should now look like this:
58+ The addition of SVG code for the icon made it look very complicated. So we can try a different approach to achieve the same result.
59+
60+ Let's save the svg code in a separate file. Save the following code in the file ` blog/templates/blog/icons/add-post.svg `
61+
62+ {% filename %}blog/templates/blog/icons/add-post.svg{% endfilename %}
63+ ``` html
64+ <svg width =" 1em" height =" 1em" viewBox =" 0 0 16 16" class =" bi bi-file-earmark-plus" fill =" currentColor" xmlns =" http://www.w3.org/2000/svg" ><path d =" M4 0h5.5v1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4.5h1V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2z" /><path d =" M9.5 3V0L14 4.5h-3A1.5 1.5 0 0 1 9.5 3z" /><path fill-rule =" evenodd" d =" M8 6.5a.5.5 0 0 1 .5.5v1.5H10a.5.5 0 0 1 0 1H8.5V11a.5.5 0 0 1-1 0V9.5H6a.5.5 0 0 1 0-1h1.5V7a.5.5 0 0 1 .5-.5z" /></svg >
65+ ```
66+
67+ Now we can use the file inside the base template as follow.
68+
69+ {% filename %}blog/templates/blog/base.html{% endfilename %}
70+ ``` html
71+ <a href =" {% url 'post_new' %}" class =" top-menu" >
72+ {% include './icons/add-post.svg' %}
73+ </a >
74+ ```
75+
76+ > Note: You can save the svg file in ` blog/static/img/icons/ ` and use ` <img> ` tag to display svg icon. But this method requires an extra HTTP request to fetch the file from server. So, it will only increase loading time. But in the proposed method, since ` <svg> ` tag is HTML, we can simply include it inside HTML file from server itself using ` {% include %} ` directive. This approach reduce the page loading time.
77+
78+ After editing the line, your HTML file should now look like this:
5979
6080{% filename %}blog/templates/blog/base.html{% endfilename %}
6181``` html
@@ -72,7 +92,7 @@ After adding the line, your HTML file should now look like this:
7292 <div class =" page-header" >
7393 <div class =" container" >
7494 <a href =" {% url 'post_new' %}" class =" top-menu" >
75- < svg width = " 1em " height = " 1em " viewBox = " 0 0 16 16 " class = " bi bi-file-earmark-plus " fill = " currentColor " xmlns = " http://www.w3.org/2000/svg " >< path d = " M4 0h5.5v1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4.5h1V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2z " />< path d = " M9.5 3V0L14 4.5h-3A1.5 1.5 0 0 1 9.5 3z " />< path fill-rule = " evenodd " d = " M8 6.5a.5.5 0 0 1 .5.5v1.5H10a.5.5 0 0 1 0 1H8.5V11a.5.5 0 0 1-1 0V9.5H6a.5.5 0 0 1 0-1h1.5V7a.5.5 0 0 1 .5-.5z " /></ svg >
95+ {% include './icons/add-post. svg' %}
7696 </a >
7797 <h1 ><a href =" /" >Django Girls Blog</a ></h1 >
7898 </div >
@@ -277,13 +297,20 @@ Django is taking care to validate that all the fields in our form are correct. I
277297
278298Now we know how to add a new post. But what if we want to edit an existing one? This is very similar to what we just did. Let's create some important things quickly. (If you don't understand something, you should ask your coach or look at the previous chapters, since we covered all these steps already.)
279299
300+ First, let's save the icon which represent edit button. Save the following code in the file ` blog/templates/blog/icons/edit-post.svg `
301+
302+ {% filename %}blog/templates/blog/icons/edit-post.svg{% endfilename %}
303+ ``` html
304+ <svg width =" 1em" height =" 1em" viewBox =" 0 0 16 16" class =" bi bi-pencil-fill" fill =" currentColor" xmlns =" http://www.w3.org/2000/svg" ><path fill-rule =" evenodd" d =" M12.854.146a.5.5 0 0 0-.707 0L10.5 1.793 14.207 5.5l1.647-1.646a.5.5 0 0 0 0-.708l-3-3zm.646 6.061L9.793 2.5 3.293 9H3.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.207l6.5-6.5zm-7.468 7.468A.5.5 0 0 1 6 13.5V13h-.5a.5.5 0 0 1-.5-.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.5-.5V10h-.5a.499.499 0 0 1-.175-.032l-.179.178a.5.5 0 0 0-.11.168l-2 5a.5.5 0 0 0 .65.65l5-2a.5.5 0 0 0 .168-.11l.178-.178z" /></svg >
305+ ```
306+
280307Open ` blog/templates/blog/post_detail.html ` in the code editor and add the line
281308
282309{% filename %}blog/templates/blog/post_detail.html{% endfilename %}
283310``` html
284311<div class =" actions" >
285312 <a class =" btn btn-default" href =" {% url 'post_edit' pk=post.pk %}" >
286- < svg width = " 1em " height = " 1em " viewBox = " 0 0 16 16 " class = " bi bi-pencil-fill " fill = " currentColor " xmlns = " http://www.w3.org/2000/svg " >< path fill-rule = " evenodd " d = " M12.854.146a.5.5 0 0 0-.707 0L10.5 1.793 14.207 5.5l1.647-1.646a.5.5 0 0 0 0-.708l-3-3zm.646 6.061L9.793 2.5 3.293 9H3.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.207l6.5-6.5zm-7.468 7.468A.5.5 0 0 1 6 13.5V13h-.5a.5.5 0 0 1-.5-.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.5-.5V10h-.5a.499.499 0 0 1-.175-.032l-.179.178a.5.5 0 0 0-.11.168l-2 5a.5.5 0 0 0 .65.65l5-2a.5.5 0 0 0 .168-.11l.178-.178z " /></ svg >
313+ {% include './icons/edit-post. svg' %}
287314 </a >
288315</div >
289316```
@@ -298,7 +325,7 @@ so that the template will look like this:
298325 <div class =" post" >
299326 <div class =" actions" >
300327 <a class =" btn btn-default" href =" {% url 'post_edit' pk=post.pk %}" >
301- < svg width = " 1em " height = " 1em " viewBox = " 0 0 16 16 " class = " bi bi-pencil-fill " fill = " currentColor " xmlns = " http://www.w3.org/2000/svg " >< path fill-rule = " evenodd " d = " M12.854.146a.5.5 0 0 0-.707 0L10.5 1.793 14.207 5.5l1.647-1.646a.5.5 0 0 0 0-.708l-3-3zm.646 6.061L9.793 2.5 3.293 9H3.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.207l6.5-6.5zm-7.468 7.468A.5.5 0 0 1 6 13.5V13h-.5a.5.5 0 0 1-.5-.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.5-.5V10h-.5a.499.499 0 0 1-.175-.032l-.179.178a.5.5 0 0 0-.11.168l-2 5a.5.5 0 0 0 .65.65l5-2a.5.5 0 0 0 .168-.11l.178-.178z " /></ svg >
328+ {% include './icons/edit-post. svg' %}
302329 </a >
303330 </div >
304331 {% if post.published_date %}
@@ -377,7 +404,7 @@ Open `blog/templates/blog/base.html` in the code editor, find our `container` `d
377404{% filename %}blog/templates/blog/base.html{% endfilename %}
378405``` html
379406<a href =" {% url 'post_new' %}" class =" top-menu" >
380- < svg width = " 1em " height = " 1em " viewBox = " 0 0 16 16 " class = " bi bi-file-earmark-plus " fill = " currentColor " xmlns = " http://www.w3.org/2000/svg " >< path d = " M4 0h5.5v1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4.5h1V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2z " />< path d = " M9.5 3V0L14 4.5h-3A1.5 1.5 0 0 1 9.5 3z " />< path fill-rule = " evenodd " d = " M8 6.5a.5.5 0 0 1 .5.5v1.5H10a.5.5 0 0 1 0 1H8.5V11a.5.5 0 0 1-1 0V9.5H6a.5.5 0 0 1 0-1h1.5V7a.5.5 0 0 1 .5-.5z " /></ svg >
407+ {% include './icons/add-post. svg' %}
381408</a >
382409```
383410
@@ -387,7 +414,7 @@ We're going to add another `{% if %}` tag to this, which will make the link show
387414``` html
388415{% if user.is_authenticated %}
389416 <a href =" {% url 'post_new' %}" class =" top-menu" >
390- < svg width = " 1em " height = " 1em " viewBox = " 0 0 16 16 " class = " bi bi-file-earmark-plus " fill = " currentColor " xmlns = " http://www.w3.org/2000/svg " >< path d = " M4 0h5.5v1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4.5h1V14a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2z " />< path d = " M9.5 3V0L14 4.5h-3A1.5 1.5 0 0 1 9.5 3z " />< path fill-rule = " evenodd " d = " M8 6.5a.5.5 0 0 1 .5.5v1.5H10a.5.5 0 0 1 0 1H8.5V11a.5.5 0 0 1-1 0V9.5H6a.5.5 0 0 1 0-1h1.5V7a.5.5 0 0 1 .5-.5z " /></ svg >
417+ {% include './icons/add-post. svg' %}
391418 </a >
392419{% endif %}
393420```
@@ -401,7 +428,7 @@ Open `blog/templates/blog/post_detail.html` in the code editor and find this lin
401428{% filename %}blog/templates/blog/post_detail.html{% endfilename %}
402429``` html
403430<a class =" btn btn-default" href =" {% url 'post_edit' pk=post.pk %}" >
404- < svg width = " 1em " height = " 1em " viewBox = " 0 0 16 16 " class = " bi bi-pencil-fill " fill = " currentColor " xmlns = " http://www.w3.org/2000/svg " >< path fill-rule = " evenodd " d = " M12.854.146a.5.5 0 0 0-.707 0L10.5 1.793 14.207 5.5l1.647-1.646a.5.5 0 0 0 0-.708l-3-3zm.646 6.061L9.793 2.5 3.293 9H3.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.207l6.5-6.5zm-7.468 7.468A.5.5 0 0 1 6 13.5V13h-.5a.5.5 0 0 1-.5-.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.5-.5V10h-.5a.499.499 0 0 1-.175-.032l-.179.178a.5.5 0 0 0-.11.168l-2 5a.5.5 0 0 0 .65.65l5-2a.5.5 0 0 0 .168-.11l.178-.178z " /></ svg >
431+ {% include './icons/edit-post. svg' %}
405432</a >
406433```
407434
@@ -411,7 +438,7 @@ Change it to this:
411438``` html
412439{% if user.is_authenticated %}
413440 <a class =" btn btn-default" href =" {% url 'post_edit' pk=post.pk %}" >
414- < svg width = " 1em " height = " 1em " viewBox = " 0 0 16 16 " class = " bi bi-pencil-fill " fill = " currentColor " xmlns = " http://www.w3.org/2000/svg " >< path fill-rule = " evenodd " d = " M12.854.146a.5.5 0 0 0-.707 0L10.5 1.793 14.207 5.5l1.647-1.646a.5.5 0 0 0 0-.708l-3-3zm.646 6.061L9.793 2.5 3.293 9H3.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.207l6.5-6.5zm-7.468 7.468A.5.5 0 0 1 6 13.5V13h-.5a.5.5 0 0 1-.5-.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.5-.5V10h-.5a.499.499 0 0 1-.175-.032l-.179.178a.5.5 0 0 0-.11.168l-2 5a.5.5 0 0 0 .65.65l5-2a.5.5 0 0 0 .168-.11l.178-.178z " /></ svg >
441+ {% include './icons/edit-post. svg' %}
415442 </a >
416443{% endif %}
417444```
0 commit comments