如何从django模板中的元og:image中的另一个域url中查找图像URL

时间:2015-06-28 20:32:43

标签: python django markdown meta

我们在django模板中找到图像url另一个域有一些问题。
我们使用django markdown,我的models.py就是这样..

class Entry(models.Model):
    title = models.CharField(max_length=200)
    body = models.TextField()
    author = models.CharField(max_length=150, null=True, blank=True)
    slug = models.SlugField(max_length=200, unique=True)
    keywords = models.CharField(max_length=200, null=True, blank=True)
    publish = models.BooleanField(default=True)
    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)
    tags = models.ManyToManyField(Tag)

    objects = EntryQuerySet.as_manager()

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse("entry_detail", kwargs={"slug": self.slug})

    class Meta:
        verbose_name = "Blog Entry"
        verbose_name_plural = "Blog Entries"
        ordering = ["-created"]

我想,我可以找到来自{{ object.body.imgUrl }}的图片网址。但我知道我们不反对获得.imgUrl

所以我的问题是,如何从object.body找到图片网址,但是如果我们从其他网域使用,则会有效。

我们一直在寻找找到它的方法,但直到现在还没有找到.. 非常感谢...

修改
我在views.py

中尝试使用beautifulshoup
from bs4 import BeautifulSoup
@property
def _getUrl_Image(url_post):
    soup = BeautifulSoup(url_post)
    result = []
    for post in soup.select('div.post'):
        all_links = soup.findAll('img', src=True)
        first = all_links[0]
        string = str(first)
        split = string.split('"')
        result.append(split[3])

    return result[0]({'result' : result})

在模板中。

{% for i in result %}
  {{ result }}
{% endfor %}

如何在值为{{ result }}

的模板中返回url_post
{% for i in result %}
  {{ result {% url "entry_detail" slug=object.slug %} }}
{% endfor %}

我知道这将是错误.. :(

编辑2:

from bs4 import BeautifulSoup 
from django import template
register = template.Library()

@register.filter
def getUrlImage(url_post):
    soup = BeautifulSoup(url_post)
    result = []
    for post in soup.select('div.post'):
        all_links = soup.findAll('img', src=True)
        first = all_links[0]
        string = str(first)
        split = string.split('"')
        result.append(split[3])
    print result[0]
    return result[0]({'result' : result})
模板中的

{% load getUrlImage %}
{% for i in result %}
  {% url "entry_detail" slug=object.slug as result_url %}
  {{ result }}{{ result_url }}
{% endfor %}

我们遇到了错误Ups.. Error 500!
是服务器无法加载我的功能或为什么?

1 个答案:

答案 0 :(得分:0)

我认为你的问题是遗漏了一些重要的细节,但也许以下内容会对你有所帮助:为你的最后一段代码写一遍(即使我不知道你为什么要使用for循环......):

{% for i in result %}
  {% url "entry_detail" slug=object.slug as result_url %}
  {{ result }}{{ result_url }}
{% endfor %}