URL 的 django 过滤器,由两个变量组成
django filter for URL that consists of two variables
在所有代码片段中,我看到了如何将过滤器应用于 URL 的基本模式。例如,
<img src="{{obj.url|filter}}" />
我想知道如何使用由两部分组成的 URL 过滤器?
<img src="{{something}}{{obj.url}}" />
注意:过滤器应该处理完整的URL,而不只是它的第二部分
编辑:
型号:
class Foo(models.Model):
token = models.CharField(max_length=150)
reference = models.ForeignKey(Reference)
查看:
def index(request):
foos = Foo.objects.filter(reference=value).all()
return render(request, 'index.html', {'foos' : foos})
模板:
{% for foo in foos %}
<img id="foo_{{foo.pk}}" src="{{MEDIA_URL}}{{foo.token}}" />
{% endfor %}
事实上,我只想对图像 URL 应用 easythumbnail URL 滤镜,它有两个部分。
如果您想像这样使用上下文变量做事,那么您应该在上下文中提供您需要的内容,而不是试图在模板中操作内容。
如果您在很多地方都需要变量,请从您的视图中添加变量或创建上下文处理器,因为通过上下文处理器您可以创建始终可用的变量。
看看我最近写的这个答案;
根据您的评论更新
在你的模型上编写一个方法来格式化字符串或类似的东西没有错;
class Foo(models.Model):
token = models.CharField(max_length=150)
reference = models.ForeignKey(Reference)
def get_url(self):
url = u'{media_url}{path}'.format(
media_url=settings.MEDIA_URL,
path=self.token
)
return url
模板:
{% for foo in foos %}
<img id="foo_{{ foo.pk }}" src="{{ foo.get_url }}" />
{% endfor %}
另外,如果您还不太熟悉 Django,您应该对用户上传的内容使用 MEDIA_URL
,对您自己的内容使用 STATIC_URL
。你可以在这里阅读更多关于这些的信息; How can I get the MEDIA_URL from within a Django template?
Django 文档; https://docs.djangoproject.com/en/1.7/ref/settings/#media-url
在所有代码片段中,我看到了如何将过滤器应用于 URL 的基本模式。例如,
<img src="{{obj.url|filter}}" />
我想知道如何使用由两部分组成的 URL 过滤器?
<img src="{{something}}{{obj.url}}" />
注意:过滤器应该处理完整的URL,而不只是它的第二部分
编辑:
型号:
class Foo(models.Model):
token = models.CharField(max_length=150)
reference = models.ForeignKey(Reference)
查看:
def index(request):
foos = Foo.objects.filter(reference=value).all()
return render(request, 'index.html', {'foos' : foos})
模板:
{% for foo in foos %}
<img id="foo_{{foo.pk}}" src="{{MEDIA_URL}}{{foo.token}}" />
{% endfor %}
事实上,我只想对图像 URL 应用 easythumbnail URL 滤镜,它有两个部分。
如果您想像这样使用上下文变量做事,那么您应该在上下文中提供您需要的内容,而不是试图在模板中操作内容。
如果您在很多地方都需要变量,请从您的视图中添加变量或创建上下文处理器,因为通过上下文处理器您可以创建始终可用的变量。
看看我最近写的这个答案;
根据您的评论更新
在你的模型上编写一个方法来格式化字符串或类似的东西没有错;
class Foo(models.Model):
token = models.CharField(max_length=150)
reference = models.ForeignKey(Reference)
def get_url(self):
url = u'{media_url}{path}'.format(
media_url=settings.MEDIA_URL,
path=self.token
)
return url
模板:
{% for foo in foos %}
<img id="foo_{{ foo.pk }}" src="{{ foo.get_url }}" />
{% endfor %}
另外,如果您还不太熟悉 Django,您应该对用户上传的内容使用 MEDIA_URL
,对您自己的内容使用 STATIC_URL
。你可以在这里阅读更多关于这些的信息; How can I get the MEDIA_URL from within a Django template?
Django 文档; https://docs.djangoproject.com/en/1.7/ref/settings/#media-url