如何解决从Django网站更改链接预览图像
我想在社交媒体上分享文章的link,但是链接预览显示的是我的图像(作者的图像),而不是帖子的精选图像。我已经尝试过SEO元标记。我要显示的图像是this。我不知道我在做什么错。如何更改链接预览缩略图?
models.py
.....
...
class Post(ModelMeta,models.Model):
author = models.ForeignKey('auth.User',on_delete=models.CASCADE)
title = models.CharField(max_length=200)
text = models.TextField()
image_file = models.ImageField(upload_to='media',null=True,blank=True)
image_url = models.URLField(null=True,blank=True)
category = models.ForeignKey(Category,verbose_name="Category",on_delete=models.CASCADE,null=True)
published_date = models.DateTimeField(blank=True,default=timezone.now,null=True)
_metadata = {
'title': 'title','image': 'get_meta_image',}
def get_meta_image(self):
if self.image_file:
self.image = self.image_file
return self.image.url
else:
self.image = self.image_url
return self.image.url
class Meta:
verbose_name = "Post"
verbose_name_plural = "Posts"
ordering = ('-published_date',)
def get_absolute_url(self):
return reverse("post_detail",kwargs={'pk':self.pk})
def __str__(self):
return self.title
.....
...
views.py
.....
...
class PostDetailView(DetailView):
model = Post
template_name = "blog/post_detail.html"
def post(self,request,*args,**kwargs):
self.object = self.get_object()
context = self.get_context_data()
if request.method == 'POST':
form = SubscriberForm(request.POST)
if context["form"].is_valid():
context["email"] = request.POST.get('email')
form.save()
messages.success(request,'Thank you for subscribing')
return redirect('/')
else:
form = SubscriberForm()
def get_context_data(self,**kwargs):
# Call the base implementation first to get a context
context = super(PostDetailView,self).get_context_data(**kwargs)
# Add in a QuerySet of all the books
context['post_list'] = Post.objects.all()
context['categories'] = Category.objects.all()
context['meta'] = self.get_object().as_meta(self.request)
form = SubscriberForm(self.request.POST or None) # instance= None
context["form"] = form
return context
.....
...
base.html
<head>
.....
...
{% block meta_extend %}
{% endblock %}
<title>SilverCyber Blog</title>
.....
...
</head>
post_detail.html
{% extends "blog/base.html" %}
{% load static %}
{% block meta_extend %}
<meta name="title" content="{{ obj.title }}">
<meta property="og:image" content="{{ obj.image }}">
{% endblock %}
.....
...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。