javascript - 使用图片上传的django动态背景

标签 javascript html css django image-uploading

我环顾四周,没有找到满意的解决方案。我正在尝试使用模型通过 Django 管理界面上传图像,然后调用该上传的图像用作 div 的背景。即 - 我创建了名为 Salford City 的足球,我上传了一张球队的照片。我会有几个团队。如果我选择 Salford,那么背景会改变,如果我选择 Brighton Albion,那么背景会改变。我使用 javascript 和硬编码城市让它工作,但我希望能够动态地完成它,而不必更改基本编码以实现轻松缩放。当前代码如下:

模型.py:

class City(models.Model):
index = models.CharField(unique=True, max_length=250, null=False, blank = False, verbose_name = 'City Inner Search Name(lowercase)')
landing_page_description = models.CharField(max_length=5000, null=True, blank = True, verbose_name = 'City Description')
name = models.CharField(max_length=250, null=False, blank = False, verbose_name = 'City Common Name')
country = models.ForeignKey(Country, null=True, blank=True)
image = models.ImageField(upload_to="images/", blank=True, null=True, verbose_name= 'City Image')

图片存储在media_files/images

html:

<div id="main" class="container-fluid citybackground">
<!-- <img src="{{ MEDIA_URL}}{{ City.image.url }}"> -->

如您所见,我尝试了多种选择。注释掉的部分是我试过的方法。

CSS:

.citybackground
{
background-image: url( "{% images {{City.image.url}} %}");
background-repeat:no-repeat;
background-size:100%;
}

views.py:

def SetCitySession(request):
  if request.method == "POST":

    request.session['city-name'] = request.POST['cityName']
    request.session['city-id'] = request.POST['cityId']

    return JsonResponse({})


def GetCitySession(request):
  if request.method == "GET":

    cityName = request.session['city-name']
    cityId = request.session['city-id']

    context = {
        "cityName": cityName,
        "cityId": cityId
    }

    return JsonResponse(context)

这目前正在使用硬编码的 javascript,我想停止使用它,因为它不是动态的。

function changeBackground(city){
    var urlBackground;

    switch(city){
        case "Manchester":
            urlBackground = "/static/img/fondo_main.jpg";
            break;
        case "Liverpool":
            urlBackground = "/static/img/liverpool_background.jpg";
            break;
        case "London":
            urlBackground = "/static/img/london_background.jpg";
            break;
    }

    $("#main").css("background-image", "url('{% if city.image %}{{ city.image.url }}{% else %}{"+ urlBackground + "}{% endif %}')";
}

谢谢你

最佳答案

简单地写成:

  background-image: url({{ city.image.url }});

关于javascript - 使用图片上传的django动态背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45353159/

相关文章:

html - 每页固定页脚,数据不与页脚重叠

javascript - Bing.com 如何创建放大的缩略图?

javascript - node.js - 静态文件 CSS/JS 在 express 中不起作用

javascript - Myghtyslider chavroka 的 slider 宽度自动缩放

javascript - 如何自定义 emmet 以生成像 html 这样的动态 javascript 代码

html - 文字无法正常显示

javascript - 将 JSON 属性的值分配给元素的 innerHTML

javascript - Mongodb将文档推送到嵌套在对象值中的数组中

javascript - 用户界面套件 : use components (beginner)

android - PhoneGap 应用中 &lt;input type ="number"> 的 Android ICS 键盘行为不一致