Source код оо текст засварлагч дээрээ нээгээд blog/models.py файлыг нээж дотор нь дараах мѳрийг нэмнэ.

cover = models.ImageField(upload_to="blog_cover")

ингээд blog модэлийн харагдах байдал:

from django.db import models

from django.utils.text import slugify class Blog(models.Model):

title = models.CharField(max_length=50, null=True)

body = models.TextField()

author = models.CharField(max_length=50, null=True)

slug = models.SlugField(unique=True, blank=True)

cover = models.ImageField(upload_to="blog_cover") def __str__(self):

return self.title + '-' + self.author def get_absolute_url(self):

return "/%s" % self.slug def save(self, *args, **kwargs):

self.slug = slugify(self.title, allow_unicode=True)

super(Blog, self).save(*args, **kwargs) def author_slug(self):

return "Publisher: %s - %s" % (self.author, self.slug)

Мэдээж models.py дээр ѳѳрчлѳлт оруулсан тул migration хийх шаардлагатай. Хэрвээ models.py дээр ямар нэг ѳѳрчлѳлт оруулсан л бол заавал migration хийх ёстойг байнга санаж хэрэгжүүлж сурах хэрэгтэй. Тэгэхээр одоо терминал дээр:

python manage.py makemigrations

Одоо demo_project/settings.py файлыг нээж хамгийн доод талын мѳрѳнд дараах 2 мѳрийг нэмнэ. Ингэснээр upload хийгдэх файлууд media хавтас дотор хуулагдахыг зааж ѳгнѳ. Мѳн файлруу хандахдаа domain.com/media/файлын_нэр гэж хандахыг тохируулж ѳгч байгаа юм.

MEDIA_URL = '/media'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

дээр тохируулсан url ээ demo_project/urls.py дээр тохируулж ѳгнѳ. Доорхи кодыг ѳмнѳх код дээр хуулж тавина.

...

from django.conf import settings

from django.urls import re_path

from django.views.static import serve

... ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Ингэснээр demo_project/urls.py файл ингэж харагдана.

"""demo_project URL Configuration

https://docs.djangoproject.com/en/1.11/topics/http/urls/

Examples:

Function views

1. Add an import: from my_app import views

2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')

Class-based views

1. Add an import: from other_app.views import Home

2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')

Including another URLconf

1. Import the include() function: from django.conf.urls import url, include

2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))

"""

from django.conf.urls import url

from django.contrib import admin The `urlpatterns` list routes URLs to views. For more information please see:Examples:Function views1. Add an import: from my_app import views2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')Class-based views1. Add an import: from other_app.views import Home2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')Including another URLconf1. Import the include() function: from django.conf.urls import url, include2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))"""from django.conf.urls import urlfrom django.contrib import admin from django.conf import settings

from django.urls import re_path

from django.views.static import serve from blog.views import all_blog, single_blog urlpatterns = [

path('admin/', admin.site.urls),

path('', all_blog, name="all_blog"),

path('<slug>', single_blog, name="single_blog"),

] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Одоо тэмплэйт дээрээ ѳѳрчлѳлт оруулж зураг харуулцгаая.

index.html нээгээд for loop дотор ингэж ѳѳрчлѳв.

{% for blog in blogs %}

<div class="cell">

<div class="media-object">

{%if blog.cover %} <!--зураг байвал доорх img гарна-->

<div class="thumbnail">

<img src={{blog.cover.url}} alt="{{blog.title}}" class="cover"/>

</div>

{% endif %} <!--нѳхцѳл шалгалт дуусна-->

<div class="media-object-section">

<h4><a href="{{blog.get_absolute_url}}">{{blog.title|capfirst}}</a></h4>

<p>{{blog.body|truncatechars:'140'}}</p>

<a href="{{blog.get_absolute_url}}">Үргэлжлэл...</a>

</div>

</div>

</div>

{% endfor %}

Ингээд серверээ асааж эхлээд admin хэсгээс нэг блогруу cover зураг оруулая.