静态文件(css、js、图像)从本地提供,而媒体文件(上传的图像和视频)在我的项目中的 Amazon S3 服务器上。
我可以毫无问题地将媒体文件上传到 Amazon S3。但是我无法获取模板上文件的 URL。
我已经尝试过静态文件并且它有效:(但静态文件将在本地)
{% load static from staticfiles %}
{% static "imagename.png" %}
Run Code Online (Sandbox Code Playgroud)
我该如何处理 MEDIA 文件?
{% media "imagename.png" %} # maybe something like that? :)
Run Code Online (Sandbox Code Playgroud)
我的设置文件是这样的:
INSTALLED_APPS: 'storages'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
DEFAULT_S3_PATH = "media"
MEDIA_ROOT = '/%s/' % DEFAULT_S3_PATH
UPLOAD_DIR = MEDIA_ROOT
MEDIA_URL = '//s3.amazonaws.com/%s/media/' % AWS_STORAGE_BUCKET_NAME
Run Code Online (Sandbox Code Playgroud) 我看过许多使用多语言模型处理的解决方案。但是它们都不是很容易应用,包括不适用于南方。我观看的应用程序来自:
好吧,我考虑了 KISS(Keep It simple Stupid)为我自己尝试了一个解决方案,这是我的分析和解决方案,基于我的特定需求(只有两种语言,西班牙语作为默认语言):
我可以使用特定语言创建字段,因为我只会使用英语和西班牙语,而且非常简单
class Country(models.Model):
name = models.CharField('Pais', max_length=80)
name_en = models.CharField('Country', max_length=80, blank=True, null=True)
class Meta:
verbose_name = 'Pais'
verbose_name_plural = 'Paises'
def __unicode__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)我可以创建一个自定义模板标签,为我提供所需的字段:
@register.tag(name='get_model_translate')
def do_translation(parser, token):
try:
tag_name, o_model, field = token.split_contents()
except ValueError:
raise template.TemplateSintaxError(u'Los parámetros no son válidos')
return Translate(tag_name, o_model, field)
class Translate(template.Node):
def __init__(self, tag_name, o_model, field):
self.tag_name = tag_name
self.o_model = template.Variable(o_model)
self.field = field
def render(self, context):
lang_code = context.get('request').LANGUAGE_CODE
o_model = …Run Code Online (Sandbox Code Playgroud)我试图显示一个 src 等于绝对路径的图像。这是我在模板中所做的
<img src="/home/userName/Documents/app/userPhotos/1/uploadedPhotos/imageName.png" alt="" />
Run Code Online (Sandbox Code Playgroud)
它没有出现。我肯定这是正确的绝对路径。有什么我需要做的,比如在我的 settings.py 文件中,才能使用绝对路径?我需要吗
import os
Run Code Online (Sandbox Code Playgroud)
在我的模板中?
编辑:
以防万一,当我运行服务器并转到调用模板的 url (/displayImages/,这就是它在我的终端中所说的内容时:
[23/Feb/2014 12:07:27] "GET /displayImages/ HTTP/1.1" 200 413
[23/Feb/2014 12:07:27] "GET /home/userName/Documents/app/userPhotos/1/uploadedPhotos/imageName.png HTTP/1.1" 404 2993
Run Code Online (Sandbox Code Playgroud) 这部分代码的目的是在类似于下面显示的模板中显示所有加入组的请求:
Request 1 | Add | Delete
Request 2 | Add | Delete
Request 3 | Add | Delete
....
Run Code Online (Sandbox Code Playgroud)
我想做的是将“添加”和“删除”按钮 href 设置为视图中的一个函数。但是我想知道将 **kwarg 从模板传递到视图的正确方法是什么。否则,是否有更好的方法来实现这一目标?
{% for asking in requested %}
<a href={% url 'group_judge_request' group_profile.slug decision=0 %}>Cut {{ asking.user.username }}</a>
<a href={% url 'group_judge_request' group_profile.slug decision=1 %}>Keep {{ asking.user.username }}</a>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
url(r'^judge_request/(?P<gslug>[\w-]+)$',
group_judge_request,
kwargs={'decision':'decision'},
name='group_judge_request'),
Run Code Online (Sandbox Code Playgroud)
def group_judge_request(request, gslug, decision):
Run Code Online (Sandbox Code Playgroud)
def group_requested_invites(request, gslug):
....
requested = GroupRequestToJoin.objects.filter(group=group_profile.group, checked=False)
return render(request, "groups/group_requested_invites.html", { …Run Code Online (Sandbox Code Playgroud) 我正在尝试根据当前在另一个列表上迭代的索引显示来自不同列表的值,但无法弄清楚如何访问各个项目..
{% for row in myarray.all %}
<tr>
<th>{{ my_other_array_where_I_cant_access_elements.forloop.counter }}</th>
<td>{{ row }}</td>
</tr>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我尝试使用,forloop.counter但这并没有显示任何内容,它只是创建了一个空的表头元素。
我的另一个数组在视图中定义如下,如果我删除forloop.counter然后我可以看到整个数组打印到表头
my_other_array_where_I_cant_access_elements = ["X", "Y", "Z", "XX", "YY"]
Run Code Online (Sandbox Code Playgroud)
如果我遗漏了任何必需的详细信息,请告诉我。
此链接是外部站点链接,我发现的所有解决方案都提到了带有静态或变量的内部链接
在 HTML 中
<a href="https://externalsite.com/page1/page2/assetId="/{{varID}}/">{{varName}}/a>
Run Code Online (Sandbox Code Playgroud)
它总是在 varID 周围出现一个空格。我尝试修剪变量。我尝试用 / 转义。
这就是浏览器检查中的样子
<a href="https://externalsite.com/page1/page2/assetId=" 1234 ">myAsset</a>
Run Code Online (Sandbox Code Playgroud)
这是你点击它时的网址
https://externalsite.com/page1/page2/assetId=
Run Code Online (Sandbox Code Playgroud) 我想在每个产品下显示计算的折扣。下面的代码没有错误,但不显示值。
模型.py:
from django.db import models
# Create your models here.
CATEGORIES = (
('Electronics', 'Electronics'),
('Clothing', 'Clothing'),
)
class Products(models.Model):
Image = models.FileField()
ProductName = models.CharField(max_length = 250, default='')
Brand = models.CharField(max_length = 250, default='')
OriginalPrice = models.IntegerField(default = '')
Price = models.IntegerField(default = '')
Category = models.CharField(max_length = 250, choices = CATEGORIES)
class Meta:
verbose_name = 'Product'
verbose_name_plural = 'Products'
def DiscountCalc(self):
Discount = (Price/OriginalPrice) * 100
return self.Discount
def __str__ (self):
return self.ProductName
Run Code Online (Sandbox Code Playgroud)
这是模板 index.html: …
我查看了我的代码几次并查看了此错误的所有先前答案,但仍然找不到解决方案。
下面是有问题的代码:
base.html:
{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-COMPATIBLE" content="IE=edge">
<meta name="viewport" content="wideth=device-width, initial-scale=1">
<title>{% block title %}Rapid Prototypes {% endblock %}</title>
<link rel="stylesheet" href="{% static 'css/site.css' %}">
<link rel="stylesheet" href="{% static 'css/bootstrap.min.css' %}">
</head>
<body id="{% block body-id %}body{% endblock %}">
{% block top-nav-wrapper %}
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle"
data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">Rapid …Run Code Online (Sandbox Code Playgroud) 我是 javascript 中的变量类型表,我需要if在此变量和 django 数据库中的变量之间使用条件进行测试,但它不起作用。
这个例子 :
var test_date = "2017-06-23";
var locations = [
{% for v in vs %}
{% if v.date == test_date %}
['okok',{{ v.latitude }},{{ v.longitude}}],
{% endif %}
{% endfor%}
]
Run Code Online (Sandbox Code Playgroud)
第一个例子不起作用,我不知道为什么。
另一个例子:
var test_date = "2017-06-23";
var locations = [
{% for v in vs %}
{% if v.date == "2017-06-23" %}
['okok',{{ v.latitude }},{{ v.longitude}}],
{% endif %}
{% endfor%}
]
Run Code Online (Sandbox Code Playgroud)
当我将变量的值放入测试中时,它正在工作
在 myApp 中,我在模型中有多个类。我想在 admin.py 中导入所有这些类并注册。
是否可以不重复,例如
from django.contrib import admin
from .models import (classA,classB, classC)
Run Code Online (Sandbox Code Playgroud)
谢谢
杰夫
django ×10
django-templates ×10
python ×4
amazon-s3 ×1
django-views ×1
html ×1
image ×1
javascript ×1
list ×1
multilingual ×1
url ×1
web ×1