Sosyal medya linkleri ve diğer araçların admin paneline eklenmesi

Merhabalari web geliştirmede yeniyim mazur görün,

sitenin başlığı meta tagları sosyal medya ikonlarının linklerini falan admin paneli üzerinden nasıl siteye ekleyebilirim (wordpress admin panelinde olduğu gibi) ve bu textleri/linkleri database de falan mı tutmam gerekiyor
mantığını yada ingilizce şöyle araştır derseniz googleden de araştırabilirim

Şöyle bir şey işinizi görebilir mi:

malesef aradığım tam bu değil
şöyle bişey
site title kısmı

Şöyle bir şey o zaman:

Bu işlem için yeni bir model yazmanız gerekiyor models.py dosyanıza örneğin:

from django.db import models

class Head(models.Model):
    title = models.CharField(
        verbose_name="Site başlığı",
        max_length=55,
        blank=True, 
        null=True,
        )
    icon = models.ImageField(
        upload_to="images/", 
        help_text="", 
        verbose_name="İcon Yükleyin",
        blank=True, 
        null=True,
    )
    keywords = models.CharField(
        verbose_name="Anahtar kelimeler",
        help_text="Anahtar kelimeleri virgül kullanarak ayırın.",
        max_length=500,
        blank=True, 
        null=True,
        )
    description = models.CharField(
        verbose_name="Site tanımı",
        max_length=150,
        blank=True, 
        null=True,
        )

    class Meta:
        verbose_name = "SEO ayarları"

    def __str__(self):
        return f"{self.title} | {self.keywords}"

daha sonra admin.py dosyanızı açıp

from django.contrib import admin

from myapp.models import Head


@admin.register(Head)
class HeadAdmin(admin.ModelAdmin):
    pass

en son templates dosyanıza head.html adında bir dosya açıp aşağıdaki gibi bir tema hazırlar ve head.html dosyanızı gerekli bütün temalarınıza {% include ‘head.html’ %} şeklinde dahil ederseniz admin bölümünden istediğiniz gibi değiştirebilirsiniz.

{% load static from staticfiles %}
<!-- Doctype HTML5 -->
<!doctype html>
<html lang="en">
<head>
    <!-- GENERAL  -->
    <meta http-equiv="pragma" content="Cache-Control: max-age=31536000">
    <meta charset="utf-8">
    <link rel="shortcut icon" href="/media/{{ head.icon }}" type="image/x-icon"/>
    <!-- SEO -->
    <title>{{ head.title|truncatechars:55 }}</title>
    <meta property="og:title" content="{{ head.title|truncatechars:55 }}"/>
    <meta property="og:site_name" content="{{ head.title|truncatechars:55 }}"/>
    <meta name="twitter:title" content="{{ head.title|truncatechars:55 }}"/>
    <meta itemprop="name" content="{{ head.title|truncatechars:55 }}"/>
    <meta name="keywords" content="{{ head.keywords }}"/>
    <meta name="description" content="{{ head.description|truncatechars:150 }}"/>
    <meta name="twitter:description" content="{{ head.description|truncatechars:150 }}"/>
    <meta property="og:description" content="{{ head.description|truncatechars:150 }}"/>
    <meta itemprop="description" content="{{ head.description|truncatechars:150 }}"/>
    <!-- RESPONSE -->
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/>

fakat bu yapı tek sayfalı siteler için daha uygun olur siteniz birden fazla sayfadan oluşuyor ve her sayfa için bu bilgiler sayfaya uygun değişsin istiyorsanız biraz daha komplex bir yapıya ihtiyacınız var bunu da google 'a django contenttype yazarak bu yapıyı öğrenebilir sonra öğrendiğiniz contenttype yapısını kullanarak yine sizinle paylaştığım yukarıdaki gibi bir yapı kullanarak bu işlemi gerçekleştirebilirsiniz veya oda olmadı middleware konusunu araştırın onu kullanarak ta yapabilirsiniz fakat admin panel olmadan yapabilirsiniz middleware ile.

2 Beğeni

Teşekkürler aradığım tam buydu

rica ederim, cevabı seçip cevaplandı şeklinde işaretlerseniz güzel olabilir.

1 Beğeni