7.3 & 7.4 如何显示保存的机构介绍

本文介绍如何在Django中创建课程机构模型,包括机构名称、描述、类别等字段,并通过视图展示机构信息,涉及模型定义、视图处理及前端页面渲染。

第一步 创建机构模型 


class CourseOrg(models.Model):
    name = models.CharField(max_length=50, verbose_name=u"机构名称")
    desc = UEditorField(verbose_name=u"机构描述",width=900, height=300, imagePath="org/ueditor/",
                                         filePath="org/ueditor/", default='')
    tag = models.CharField(default="全国知名", max_length=10, verbose_name=u"机构标签")
    category = models.CharField(default="pxjg", verbose_name=u"机构类别", max_length=20, choices=(("pxjg","培训机构"),("gr","个人"),("gx","高校")))
    click_nums = models.IntegerField(default=0, verbose_name=u"点击数")
    fav_nums = models.IntegerField(default=0, verbose_name=u"收藏数")
    image = models.ImageField(upload_to="org/%Y/%m", verbose_name=u"logo", max_length=100)
    address = models.CharField(max_length=150, verbose_name=u"机构地址")
    city = models.ForeignKey(CityDict, on_delete=models.CASCADE, verbose_name=u"所在城市")
    students = models.IntegerField(default=0, verbose_name=u"学习人数")
    course_nums = models.IntegerField(default=0, verbose_name=u"课程数")
    add_time = models.DateTimeField(default=datetime.now)

    class Meta:
        verbose_name = u"课程机构"
        verbose_name_plural = verbose_name
    def __str__(self):
        return self.name

 

第二步 在后台创建机构实例

第三步 书写View


class OrgView(View):
  def get(self,request):
    all_orgs = CourseOrg.object.all()
    all_city = CityDict.objects.all()
    return render(request, "org-list.html", {
            "all_orgs":orgs,
            "all_citys":all_citys,
            "org_nums": org_nums,
        })

    

第四步 前端页面 

  {% for course_org in all_orgs.object_list %}
                <dl class="des difdes">
                    <dt>
                        <a href="{% url 'org:org_home' course_org.id %}">
                            <img width="200" height="120" class="scrollLoading" data-url="{{ MEDIA_URL }}{{ course_org.image }}"/>
                        </a>
                    </dt>
                    <dd>
                        <div class="clearfix">
                             <a href="{% url 'org:org_home' course_org.id %}">
                                 <h1>{{ course_org.name }}</h1>
                                 <div class="pic fl">

                                         <img src="{% static 'images/authentication.png' %}"/>

                                         <img src="{% static 'images/gold.png' %}"/>

                                 </div>
                             </a>
                        </div>
                        <ul class="cont">
                            <li class="first"><p class="pic9">课程数:<span>1</span></p><p class="c7">学习人数:<span>1000</span></p></li>
                            <li class="c8" style="padding-left:18px;">北京市海淀区中关村北大街</li>
                            <li class="pic10" style="padding-left:18px;">经典课程:

                                    <a href="/diary/19/">c语言基础入门</a>

                                    <a href="/diary/16/">数据库基础</a>

                            </li>
                        </ul>
                    </dd>
                    <div class="buy start_groupbuy jsShowPerfect2" data-id="22"><br/>联系<br/>服务</div>
                </dl>
            {% endfor %}

在存机构LOGO时,使用了ImageField,在数据库中存储的是一个字符串,是相对路径的地址

因此直接在 img标签中 data-url='{{course_org.image}}'是相对地址,还不能完成图片存取。

可以data-url='/media/{{course_org.image}}'  或者  data-url='{{ MEDIA-URL }}{{course_org.image}}' 

为将MEDIA_URL注册到前端页面,需要在settings.py文件中配置

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                # 'django.core.context_processors.media',
                'django.template.context_processors.media'
            ],
        },
    },
]

此时页面中LOGO地址

但此时没有在URL中配置如何处理,因此还是没有图像显示

from django.views.static import serve   //处理静态文件
from MxOnline.settings import MEDIA_ROOT
# 配置上传文件的访问处理函数
url(r'media/(?P<path>.*)$',serve,{'document_root':MEDIA_ROOT})

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值