İçeriğe geç
Muslu Yüksektepe

Django ile teknik servis formu (Python 2)

Django 1.9 ve Python 2 ile adım adım teknik servis formu sitesi yapmayı anlatan Türkçe doküman ve kodlar.

Bu depo, Django 1.9 ve Python 2 ile bir teknik servis formu sitesinin baştan sona nasıl yapılacağını anlatan Türkçe doküman ile o dokümanda yazılan kodun tamamını içeriyor. 2016 yılının Ocak ayında djangoturkiye.com için hazırladım ve bir hafta boyunca neredeyse her gün yeni bölümler ekleyerek güncelledim. Doküman son hâlinde 100 sayfayı geçti. Bu depo, GitHub'da en çok yıldız alan depom oldu.

Amaç

O dönemde Django'yu Türkçe olarak, kurulumdan çalışan bir siteye kadar anlatan güncel bir kaynak yok denecek kadar azdı. Kaynakların çoğu ya İngilizceydi ya da eski Django sürümlerine göre yazılmıştı. Ben, Django'ya hiç dokunmamış birinin de takip edebileceği, konuşma diliyle yazılmış bir kılavuz hazırlamak istedim. Soyut örnekler yerine gerçek bir ihtiyaçtan yola çıktım: bir teknik servisin müşterilerini, getirilen cihazları ve bu cihazların tamir sürecini takip edebileceği bir site.

Örnek uygulama

Uygulama servisformu adında tek bir Django uygulamasından oluşuyor. Müşteriler, teknisyenler, aksesuarlar ve işlem durumları ayrı tablolarda tutuluyor. Her servis formuna bir müşteri ve formu teslim alan teknisyen bağlanıyor; formun altına da en fazla beş ürün ekleniyor. Her ürün için cins, marka, model, seri numarası, garanti bitiş tarihi, şikayet, ürünle gelen aksesuarlar, durum ve yapılan işlemler giriliyor. Müşteri kodu ve form numarası kayıt sırasında rastgele sekiz haneli bir sayı olarak üretiliyor.

İşin büyük kısmı Django yönetim paneli üzerinden yürüyor. Müşteri listesinden telefon numarasına tek tıkla arama yapılabiliyor. Seçilen kayıtları koşula göre toplu güncelleyen bir işlem tanımlı. Form ekranındaki müşteri ve teknisyen seçim listelerinde yalnızca aktif kayıtlar gösteriliyor. Her formun yanında yazdırılabilir bir servis fişi açan bağlantı var.

Sitenin ana sayfasında müşterinin kendi form numarasını yazarak cihazının durumunu sorguladığı bir alan bulunuyor. Sorgu AJAX ile gönderiliyor ve sayfa yenilenmeden ürünlerin son durumu ile yapılan işlemler gösteriliyor. Servis formları ayrıca XML olarak dışa aktarılabiliyor.

Dokümanda anlatılan konular

  • Kurulum, proje oluşturma, dil ve saat ayarları, collectstatic ve createsuperuser komutları
  • Projeye başlamadan önce ihtiyaçları belirleme ve tabloları tasarlama
  • Model alanlarında varsayılan değer, boş bırakılamaz ve null olamaz kısıtları
  • ForeignKey ve ManyToManyField ilişkileri, TabularInline ile StackedInline karşılaştırması
  • Yönetim panelinde list_display_links, eylem (action) ekleme, toplu güncelleme ve kayıt sayısını sınırlama
  • Yönetim paneli temasını kopyalayıp değiştirme, statik dosyalar ve media klasörü
  • TemplateView ile HTML, metin ve XML dosyası sunma, HttpResponse, CSRF ve AJAX ile sorgulama
  • XML çıktısında CDATA kullanımı, _set.all ile ilişkili kayıtları şablonda gösterme ve forloop.counter
  • Şablonu bloklara ayırma, extends, cycle, comment gibi etiketler ve filtre örnekleri

Depo içeriği

Uygulama kodunun yanında Video_PDF klasöründe dokümanın tarih tarih güncellenen PDF sürümleri, ODT kaynak dosyaları ve bir EPUB sürümü bulunuyor. Veritabanı olarak SQLite kullanıldığı için proje indirildikten sonra ek bir kurulum gerekmeden çalıştırılabiliyor. Doküman, isim ve site adresi belirtilerek serbestçe paylaşılabilir ve düzenlenebilir. Aynı dokümanın Python 3 sürümü django-teknikservis-py3 deposunda duruyor.

Kategori
Eğitim ve topluluk
Yıl
2016

Teknolojiler

  • Python
  • Django
  • Education

Bağlantılar

  • GitHub https://github.com/muslu/django-teknikservis

Tüm projelere dön