小编Mas*_*aca的帖子

如何使用 Django 管理动态菜单?

我想根据类别模型动态创建菜单的链接。我使用 DetailView 和 ListView 创建单个类别的列表和详细信息页面,并且运行良好。

现在,每次用户添加新类别时,我希望在 base.html 中看到“下拉”菜单中的新链接。

这是base.html

{% load static %}

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

    <title>{% block head_title %}Test{% endblock head_title %}</title>
  </head>
  <body>


    <nav class="navbar navbar-expand-lg navbar-light bg-light">
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>

      <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav mr-auto">
          <li class="nav-item active">
            <a class="nav-link" href="/">Home <span …
Run Code Online (Sandbox Code Playgroud)

html django django-templates django-views django-2.1

7
推荐指数
1
解决办法
9475
查看次数

在 Django 应用中获取上传文件的文件大小

我想在模板中显示用户上传的文件的大小。我已经看到文件对象具有属性 size 但是,因为我是 Python 和开发领域的新手,所以我很难理解如何使用它。

经过一些测试,我开发了这个脚本(filesize)添加到模型的末尾,您可以使用它上传文件:

class FileUpload(models.Model):
    name = models.CharField(
        max_length=50,
        )
    description = models.TextField(
        max_length=200,
        blank=True,
        )
    file = models.FileField(
        upload_to='blog/%Y/%m/%d'
        )

    def __str__(self):
        return self.name

    @property
    def filesize(self):
        x = self.file.size
        y = 512000
        if x < y:
            value = round(x/1000, 2)
            ext = ' kb'
        elif x < y*1000:
            value = round(x/1000000, 2)
            ext = ' Mb'
        else:
            value = round(x/1000000000, 2)
            ext = ' Gb'
        return str(value)+ext
Run Code Online (Sandbox Code Playgroud)

现在调用文件的大小很简单。

在此处输入图片说明

我分享这个是因为我希望这对某人有用。我要问的是:有更好的解决方案吗?

python django django-file-upload django-2.2

7
推荐指数
1
解决办法
4139
查看次数

使用基于类的视图包含类别 slug 和帖子 slug 的 URL

我正在开发一个简单的博客来学习 Django。我希望每个帖子都有一个这样的路径:

  • /category-1/标题帖子
  • /category-2/标题帖子
  • ETC..

下面是urls.py

from django.urls import include, path
from .views import CategoryList, PostList, SingleCategory, SinglePost, SingleTag, TagList

urlpatterns = [
        path("", PostList.as_view(), name="list_post"),
        path("<slug:slug>", SinglePost.as_view(), name="single_post"),
        path("tags/", TagList.as_view(), name="list_tag"),
        path("tags/<slug:slug>", SingleTag.as_view(), name="single_tag"),
        path("categories/", CategoryList.as_view(), name="list_category"),
        path("categories/<slug:slug>", SingleCategory.as_view(), name="single_category"),
]
Run Code Online (Sandbox Code Playgroud)

views.py

from django.shortcuts import render
from django.views.generic.list import ListView
from django.views.generic.detail import DetailView

from .models import Category, Post, Tag
# Create your views here.

class CategoryList(ListView):
    model = Category
    context_object_name = 'category_list'
    template_name = "list_category.html"


class …
Run Code Online (Sandbox Code Playgroud)

django redirect django-urls django-views django-2.1

2
推荐指数
1
解决办法
4442
查看次数

MapBox:为点分配图标

我正在尝试为 GeoJSON 中的点分配一个图标。我使用这个片段:

    map.addSource('Punti di allerta', {
        type: 'geojson',
        data: source_attentionpoints, 
    });
    map.addLayer({
        'id': 'Punti di allerta',
        'type': 'circle',
        'source': 'Punti di allerta',
        'layout': {
            'icon-image': '{% static 'image/webgis/icons/warning50.png' %}',
            'icon-size': 0.5
        }
    });
Run Code Online (Sandbox Code Playgroud)

我看到这两个错误并且点没有呈现:

错误:“layers.Punti di allerta.layout.icon-image:未知属性“icon-image””错误:“layers.Punti di allerta.layout.icon-size:未知属性“icon-size””

但如果我使用这个片段而不是之前的片段,我可以毫无问题地看到所有点:

map.addLayer({
    'id': 'Punti di allerta',
    'type': 'circle',
    'source': 'Punti di allerta',
     'paint': {
         'circle-radius': 8,
         'circle-color': 'rgb(0,0,0)',
         'circle-opacity': 1.0,
         'circle-stroke-width': 4,
         'circle-stroke-color': 'rgb(200,200,200)',
         'circle-stroke-opacity': 1.0,
         'circle-blur': 0,
    }
});
Run Code Online (Sandbox Code Playgroud)

我有什么错吗?

javascript mapbox mapbox-gl-js

0
推荐指数
1
解决办法
865
查看次数