Python 显示来自createView的数据

Python 显示来自createView的数据,python,django,Python,Django,我有这个代码,从用户发布的url中提取图像。我没有收到任何错误,但我不确定如何将提取的图像显示到我的index.html。 在这里这是我的观点 class PostCreateView(CreateView): model = Post form_class = PostForm template_name = 'main/add_post.html' def form_valid(self, form): self.object = form.

我有这个代码,从用户发布的url中提取图像。我没有收到任何错误,但我不确定如何将提取的图像显示到我的index.html。 在这里这是我的观点

class PostCreateView(CreateView):
    model = Post
    form_class = PostForm
    template_name = 'main/add_post.html'

    def form_valid(self, form):
        self.object = form.save(commit=False)
        # any manual settings go here
        self.object.moderator = self.request.user
        url = self.request.GET.get('url', False)
        if url:
            image = extract(url)
        self.object.save()
        return HttpResponseRedirect(reverse('post', args=[self.object.slug]))

    @method_decorator(login_required)
    def dispatch(self, request, *args, **kwargs):       
        return super(PostCreateView, self).dispatch(request, *args, **kwargs)
这里我有image=extract(url) 提取方法来自media.py。 因为我没有得到任何错误,所以我假设至少语法是正确的。 现在我想将该图像显示到我的index.html。 我原以为post.image可以完成这项工作,但什么也没出现

在这里;这是我的媒体

import json
import urllib2
from urllib2 import Request
from goose import Goose

def get_content(url):
    """This function is intended to return content from url.
    :param url: URL to get content
    :return: The response from url
    """
    req = urllib2.Request(url, headers={'User-Agent': "Magic Browser"})
    response = urllib2.Request.urlopen(req).read()
    return response 


def extract(url):
    url = get_content(url)
    g = Goose()
    article = g.extract(url=url)
    resposne = {'image':article.top_image.src}
    return json.dumps(resposne)
我的模特,以防万一

class Post(models.Model):
    category = models.ForeignKey(Category)
    pub_date = models.DateTimeField(auto_now_add = True)
    title = models.CharField(max_length = 100)
    content = FroalaField()
    url = models.URLField(max_length=250, blank=True, null=True)
    moderator = models.ForeignKey(User)
    rank_score = models.FloatField(default= 1)

    views = models.IntegerField(default=0)
    image = models.ImageField(upload_to="images",blank=True, null=True)
    slug = models.CharField(max_length=100, unique=True)

    objects = models.Manager()

您已经从请求数据中提取了URL并检索了图像,但您根本没有对其进行任何处理。我想你需要把它保存在Post对象的某个地方。

谢谢丹尼尔,请原谅我的英语,但实际上我是这么问的。我不确定如何将该图像显示到index.html。不确定下一步是什么,我尝试了post.image,但没有成功…不确定在哪里或如何保存它们因为我尝试了post.image,但它没有显示,我认为我的media.py是错误的,但我没有看到任何错误,也许我的treid显示方式是错误的//但问题不在于显示,而在于保存。您调用extract_image,但随后丢弃结果。你需要把它保存在某个地方。所以先保存,然后再显示?我按照这里的教程,他们没有保存它,所以我想我不必保存它。我该如何保存它们呢?但是你难道看不到那个教程在做一些与你完全不同的事情吗?它接受一个URL并立即显示来自该URL的图像。您接受一组数据,包括一个URL,将大部分数据保存到一个“Post”对象中,重定向到另一个页面,然后加载Post数据并将其发送到模板。您肯定意识到,在这其中,您还需要保存图像数据,以便检索图像数据?