Django’nun bize sağladığı en büyük kolaylıklarından biri olan admin paneline değineceğiz. Djngo admin panelimizi yayınlar oluşturmak ve yönetmek için kullanacağız.
Öncelikle terminalimizde django admin paneline giriş yapmak için bir yetkili kullanıcı oluşturalım.
E-posta, şifre ve kullanıcı adı girmeniz istenir. Güvenlik kaygıları için Parola’nın görünmeyeceğini unutmayın.
Bundan sonra sunucumuzu yeniden çalıştıralım .
Admin paneli adresine gidelim http://127.0.0.1:8000/admin/ ve django admin panelimizin giriş sayfasına geldik, oluşturduğumuz kullanıcı bilgileri ile giriş yapalım. Giriş yaptıktan sonra karşımıza gruplar ve kullanıcılar adında temel bir yönetim paneline gelmiş oluyoruz.
Veritabanı Oluşturma
Django veritabanı işlemlerini bizim için kendi sağlıyor. Şimdi biz bloğumuza gönderileri yayınlayabilmek için kullanacağız.
Blog uygulamamızın içindeki models.py gelip, kodları ekleyelim.
from django.db import models from django.contrib.auth.models import User STATUS = ( (0,"Draft"), (1,"Publish") ) class Post(models.Model): title = models.CharField(max_length=200, unique=True) slug = models.SlugField(max_length=200, unique=True) author = models.ForeignKey(User, on_delete= models.CASCADE,related_name='blog_posts') updated_on = models.DateTimeField(auto_now= True) content = models.TextField() created_on = models.DateTimeField(auto_now_add=True) status = models.IntegerField(choices=STATUS, default=0) class Meta: ordering = ['-created_on'] def __str__(self): return self.title
title: Gönderimizin başlığı.
slug: URL kısmında gözükecek olan yazı.
author: Yazıyı yayınlayan yazar.
ve geriye kalan kısım ise oluşturma ve güncelleme tarihleri olmuş oluyor. Bunları eklediğimizde model dosyamızda değişiklik yaptığımız için şunları yapalım;
işlemlerini yapınca güncellemelerimizi yapmış olduk.
Admin Paneline Post Modülünü Ekleme
Admin panelinde işlemlerimizi yapmamız için veritabanına eklediğimiz post modülünü django admin panelimize ekleyelim.
Django blog uygulamamızın içindeki admin.py dosyasının içine şu kodları ekleyelim.
from django.contrib import admin from .models import Post class PostAdmin(admin.ModelAdmin): list_display = ('title', 'slug', 'status', 'created_on') list_filter = ("status",) search_fields = ['title', 'content'] prepopulated_fields = {'slug': ('title',)} admin.site.register(Post, PostAdmin)
Modelde eklediğimiz title, slug, status vb. modülümüzü bu kısımda django admin panelimize tanıtıyoruz.
ve urls.py dosyamıza da şu şekil güncellememizi getirelim;
from . import views from django.urls import path urlpatterns = [ path('', views.PostList.as_view(), name='home'), path('<slug:slug>/', views.PostDetail.as_view(), name='post_detail'), ]
şuan her şey yolunda fakat elimizde hala bir tamplate yok. Proje klasörümüzün içine templates diye bir klasör oluşturalım ve bunu settings.py dosyamızdaki app kısmına tanıtalım. App kısmındaki dirs yazan dizin şu şekil olsun;
'DIRS': [os.path.join(BASE_DIR, 'templates')],
Ve artık templates klasörümüzü tanıtmış olduk. Şimdi orayı doldurma zamanı.
Bir sonraki yazıda anlatacağım fakat sabırsız arkadaşlar için proje dosyalarını github adresimden alıp inceleyebilirler.