Ich habe einen Django-Blog im Web und habe endlich das Facebook-Share-Plugin in den einen gestellt. Aber jedes Mal, wenn ich teile, kann ich das gleiche Bild teilen, das Bild ist ein statisches Bild vom Kopf von base.html. Ich benutze Django 1.10, Python3.6 und niemand teilen Plugin. Wie kann ich das jeweilige Bild von meiner jeweiligen Seite teilen? Vielen Dank! PS: Ich denke, jeder andere Code ist unnötig.Wie kann ich den entsprechenden Post mit Facebook teilen?
views.py
def index(request):
posts = Evento.objects.filter(published_date__lte=timezone.now()).order_by('-published_date')
return render(request, 'core/index.html', {'posts': posts})
from urllib.parse import quote_plus
def post_detail(request, pk):
post = get_object_or_404(Evento, pk=pk)
share_string = quote_plus(post.apresentacao)
context = { "title": post.nome, "instance": post.foto, "share_string": share_string, }
Evento.objects.get(pk=pk)
return render(request, 'core/post_detail.html', {'post': post})
def index(request):
posts = Evento.objects.filter(published_date__lte=timezone.now()).order_by('-published_date')
return render(request, 'core/index.html', {'posts': posts})
def post_detail(request, pk):
post = get_object_or_404(Evento, pk=pk)
share_string = quote_plus(post.apresentacao)
context = { "title": post.nome, "instance": post.foto, "share_string": share_string, }
Evento.objects.get(pk=pk)
return render(request, 'core/post_detail.html', {'post': post})
models.py
class Evento(models.Model):
nome = models.CharField(max_length=200, null=False, blank=False)
apresentacao = models.TextField(null=False, blank=False)
foto = CloudinaryField('foto', null=True, blank=True)
created_date = models.DateTimeField(
default=timezone.now)
published_date = models.DateTimeField(
blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.nome
def get_absolute_url(self):
#return reverse("detalhe", kwargs={"pk": self.pk})
return "/post/%s" %(self.pk)
und
<div class="post">
<div class="fb-share-button" data-href="{{ request.build_absolute_uri }}" data-layout="button_count" data-size="large" data-mobile-iframe="true"><a class="fb-xfbml-parse-ignore" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2Fplugins%2F&src=sdkpreparse">Compartilhar</a></div>
{% if post.published_date %}
<div class="date">
{{ post.published_date }}{{ post.timestamp }}
</div>
{% endif %}
<p><h1>{{ post.nome }}</h1></p>
<center><img>{% cloudinary post.foto %}</img></center>
<p><h2>{{ post.apresentacao|linebreaksbr }}</h2></p>
</div>
<div class="fb-comments" data-href="{{ request.build_absolute_uri }}" data-numposts="2"></div>
{% endblock %}
Bye post_detail.html.
Fügen Sie opengraph '' Tags in den HTML-Kopf Ihrer Artikel hinzu. 'og: image' wird im Facebook-Feed verwendet. Facebook bietet sowohl Dokumentation als auch Webmaster-Tools, um es zu testen. https://developers.facebook.com/docs/sharing/webmasters –
Wie kann ich das tun? In den Posts oder habe ich zufällig HTML Code? Es tut mir leid, es ist mein erster Blog. Ich werde die Dokumentation lesen – victorcd
Sie müssen diese Tags innerhalb der HTML-Kopf-Tag hinzufügen. Dies ist vergleichbar mit einzelnen Titeltiteln für jeden Blogeintrag. Es gibt eine Menge Dokumentation dazu unter https://developers.facebook.com –