Claude Code, terminalde claude komutuyla başlattığınız bir kodlama ajanıdır; Django projesinin kök klasöründe çalıştırdığınızda proje dosyalarını okuyup düzenleyebilir, komutları çalıştırabilir ve test çıktılarını yorumlayabilir. Django’nun model, migration, view, template ve DRF katmanlarında günlük işleri hızlandırmak için iyi bir yardımcıdır. Doğru proje talimatları ve küçük adımlı bir döngüyle, tekrar eden işleri güvenle devredebilirsiniz. Claude Code hakkında temel bilgi için Claude Code sayfasına bakabilirsiniz (link: Claude Code).
Neden Claude Code Django işleri için uygundur?
Django projeleri güçlü kurallara ve tekrar eden desenlere sahiptir: model tanımları, migration dosyaları, serializer’lar, view’lar, URL yönlendirmeleri ve testler. Claude Code bu desenleri tanır; models.py içine yeni bir model eklemek, admin.py kaydı oluşturmak veya DRF serializer yazmak gibi işlerde projedeki mevcut kod stilini örnek alarak tutarlı çıktı üretir. Ayrıca python manage.py makemigrations gibi komutları sizin adınıza çalıştırıp sonucu görebilir; bu da migration oluşturma ve test döngüsünü kısaltır. Öte yandan, Django’nun özgün tuzakları (N+1 sorgular, transaction yönetimi, migration çakışmaları) konusunda denetim gerekir; ajan her zaman doğru kararı vermez. Yine de rutin işlerin büyük bölümünü üstlenebilir.
Django projesini ajan için hazırlama ve CLAUDE.md
Claude Code, proje kökündeki CLAUDE.md dosyasını okur ve buradaki talimatları her oturumda uygular. Django projeniz için bu dosyaya komutları, klasör düzenini ve Django’ya özgü kuralları yazın. Kısa ve net tutun; ajanın karar verirken başvuracağı bir sözleşme gibi düşünün. Aşağıdaki örnek, tipik bir Django + DRF + pytest kurulumu için gerçekçi bir başlangıçtır:
# CLAUDE.md
## Komutlar
- Test: `pytest` (pytest-django, `--reuse-db` kullanma)
- Lint: `ruff check .`
- Format: `black .`
- Sunucu: `python manage.py runserver`
- Migration: `python manage.py makemigrations && python manage.py migrate`
## Klasör düzeni
- `config/` proje ayarları ve ana URL'ler.
- Her Django uygulaması `apps/<app_name>/` altında.
- `templates/` global şablonlar; uygulama şablonları kendi `templates/<app_name>/` dizininde.
- Statik dosyalar `static/` altında, app bazlı ayrıştır.
## Django kuralları
- Model değişikliklerinde her zaman `makemigrations` çalıştır; migration dosyalarını elle düzenleme.
- Queryset'lerde N+1'e dikkat et; gerekli `select_related` ve `prefetch_related` ekle.
- DRF serializer'larında `fields = "__all__"` kullanma; alanları açıkça listele.
- Her model için `__str__` ve `get_absolute_url` tanımla.
- Transaction gerektiren işlemlerde `transaction.atomic` kullan.
- Testler `tests/` klasöründe, her uygulama kendi testlerini içerir; `pytest.mark.django_db` ile işaretle.
Bu dosyayı sürüm kontrolüne ekleyin; ekip arkadaşlarınız da aynı kuralları kullanır. Daha fazla pratik ipucu için Claude Code en iyi pratikler yazısına bakabilirsiniz (link: Claude Code en iyi pratikler: uygulamalı kontrol listesi).
Çalışma döngüsü: planla, küçük adımlar at, test et, diff’i incele
Claude Code ile Django’da verimli çalışmanın anahtarı, büyük görevleri tek seferde istememektir. Şu döngüyü izleyin:
- Plan isteyin: Ajanın önce ne yapacağını maddeler halinde açıklamasını isteyin. Örneğin: “Şu view’ı optimize etmeden önce hangi dosyaları değiştireceğini ve hangi sorguları ekleyeceğini planla.” Bu, yanlış yöne gitmeyi önler.
- Küçük adım: Model ekleme, serializer yazma veya test oluşturma gibi tek bir mantıksal değişikliği isteyin.
- Testleri çalıştırın: Her adımdan sonra
pytestveya ilgili komutu ajanın çalıştırmasını isteyin. Çıktıyı birlikte yorumlayın. - Diff’i gözden geçirin:
git diffile yapılan değişiklikleri inceleyin; özellikle migration dosyalarını, settings.py değişikliklerini ve import’ları kontrol edin.
İşte tipik Django görevleri için örnek istekler (her biri Türkçe):
- “Yeni bir
Ordermodeli ekle;Customerile ForeignKey,statusalanı choices,totalDecimalField(max_digits=10, decimal_places=2). Migration’ı oluştur ve testini yaz.” - “
OrderListAPIViewiçin DRF serializer ve view yaz; queryset’iselect_related('customer')ile optimize et, permission_classesIsAuthenticatedolsun.” - “
Ordermodelinecancelmetodu ekle; stok miktarını geri yüklesin,transaction.atomickullansın. İlgili pytest testini yaz.” - “Mevcut
ProductmodelindekipricealanınıDecimalField(max_digits=10, decimal_places=2)yap; migration’ı oluştur ve mevcut verileri koruyacak şekilde düzenle.” - “Bu view’daki N+1 sorgusunu bul ve
prefetch_relatedile düzelt; değişiklikleri açıklamalı olarak göster.”
Django’da hangi işler iyi gider, nerelerde dikkat gerekir?
Claude Code özellikle şu işlerde başarılıdır: yeni model ve migration oluşturma, admin.py kayıtları, basit DRF serializer/view/url üçlüsü, manage.py komutları için management command yazma, import hatalarını düzeltme, verilen şartnameye göre test yazma ve küçük refactor’lar. Ayrıca mevcut koddan desen çıkararak yeni endpoint’ler ekleyebilir.
Ancak şu alanlarda yakından izleyin:
- Migration çakışmaları: Birden fazla branch’ten gelen migration’lar çakışabilir; ajan bazen yanlış bağımlılık sırası üretebilir. Migration dosyalarını kabul etmeden önce
python manage.py makemigrations --checkçalıştırın. - ORM performansı: Ajan varsayılan olarak N+1 problemi yaratabilir veya gereksiz
prefetch_relatedekleyebilir. Sorgu sayısınıdjango-debug-toolbarveya test assert’leriyle doğrulayın. - Transaction ve race condition:
select_for_update,transaction.atomicveyaF()ifadeleri gerektiren durumlarda ajan basit ama hatalı kod önerebilir. Finansal veya stok işlemlerinde kodu mutlaka gözden geçirin. - Settings ve güvenlik: Ajan bazen
DEBUG=Truegibi ayarları değiştirebilir veyaSECRET_KEY’i yanlışlıkla commit’leyebilir.git diff’teconfig/settings.pydeğişikliklerini tek tek kontrol edin. - Django sürüm uyumu: Ajan, eski veya yeni Django sürümlerine ait API’leri karıştırabilir. Projenizin
requirements.txtveyapyproject.tomliçindeki Django sürümünü CLAUDE.md’de belirtin.
Aşağıdaki tablo, sık yapılan görevler için doğrudan kullanabileceğiniz istekleri özetler:
| Görev | Claude Code’a örnek istek |
|---|---|
| Model + migration | “Product modeline slug alanı ekle, unique olsun, migration oluştur.” |
| DRF endpoint | “Bu model için ListCreateAPIView ve ModelSerializer yaz, permission_classes IsAuthenticated olsun.” |
| Test ekleme | “Şu view için pytest-django ile başarılı ve başarısız senaryoları yaz.” |
| Optimizasyon | “Bu view’daki sorgu sayısını azalt, eksik select_related/prefetch_related ekle.” |
Test etme ve doğrulama
Django projelerinde testler, ajanın ürettiği kodun doğruluğunu kanıtlamanın en güvenilir yoludur. Claude Code’a her değişiklikten sonra pytest çalıştırmasını söyleyin; test çıktısındaki hataları ajanın kendisinin düzeltmesini isteyin. pytest-django kullanıyorsanız, test veritabanı için hızlı olması açısından --reuse-db yerine temiz bir SQLite kullanın; CI’da PostgreSQL çalıştırmadan önce yerel doğrulama yeterlidir. Ayrıca python manage.py check ve ruff check . komutlarını düzenli çalıştırın. Ajanın git diff çıktısını göstermesini isteyip yalnızca onayladığınız değişiklikleri commit’leyin. Migration’lar için python manage.py makemigrations --check --dry-run ile eksik migration olmadığını doğrulayın.
Aynı Django projesinde birden fazla ajanı AgentVera ile çalıştırma
Django projeleri genellikle paralel geliştirilen birden çok özellik barındırır. AgentVera masaüstü uygulaması, Claude Code gibi komut satırı ajanlarını aynı pencerede kendi gerçek terminal panellerinde çalıştırır; her ajan kendi git worktree’sinde çalışarak birbirinin dosyalarını ezmez. Django için en kritik fayda, migration ve model değişikliklerini izole edebilmektir. Ajanın sırası bittiğinde ikinci bir model kodu otomatik inceler; bulgular dosya:satır olarak bağlantılıdır, böylece yanlış select_related veya eksik migration kolayca yakalanır. Ayrıca her turun anlık görüntüsü alınır ve tek tıkla geri alınabilir; yanlış bir migration sonrası hızlı toparlanırsınız. Token bütçeleri de ajan başına, tur başına ve günlük olarak sınırlandırılabilir. Daha fazla bilgi için AgentVera nasıl kullanılır sayfasına bakın (link: AgentVera nasıl kullanılır: ilk proje, ajanlar ve ızgara).
Sonuç
Claude Code, Django projelerinde doğru kurulum ve denetimle ciddi zaman kazandırır. CLAUDE.md ile proje kurallarını netleştirin, küçük adımlarla ilerleyin, testleri ve diff’leri sürekli doğrulayın. Özellikle model, serializer ve test yazımında ajanı güvenle kullanabilir; migration ve transaction gibi kritik alanlarda ise son kararı kendiniz verin. Birden fazla ajanı paralel çalıştırmak gerektiğinde AgentVera gibi bir ızgara, işleri izole tutarak Django geliştirmeyi ölçeklendirir.