# Claude Code ile Django Projelerinde Pratik Geliştirme

Adres: https://agentvera.dev/blog/claude-code-ile-django/ · Yayın: 2026-11-01

Django projelerinde Claude Code ile model, migration, DRF ve pytest-django kullanımını adım adım öğrenin; CLAUDE.md ve pratik çalışma döngüsü örnekleriyle.

**Kısaca:**

- Claude Code, Django projelerinde model, migration, DRF ve test işlerini terminalden yönetebilen bir kodlama ajanıdır.
- Doğru bir CLAUDE.md ve küçük adımlı çalışma döngüsü, ajanın üretkenliğini ciddi biçimde artırır.
- Migration, transaction ve ORM performansı gibi kritik alanlarda ajanın çıktısını mutlaka gözden geçirmek gerekir.

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](/ajanlar/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:

```markdown
# 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](/blog/claude-code-en-iyi-pratikler/)).

## Ç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:

1. **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.
2. **Küçük adım:** Model ekleme, serializer yazma veya test oluşturma gibi tek bir mantıksal değişikliği isteyin.
3. **Testleri çalıştırın:** Her adımdan sonra `pytest` veya ilgili komutu ajanın çalıştırmasını isteyin. Çıktıyı birlikte yorumlayın.
4. **Diff’i gözden geçirin:** `git diff` ile 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 `Order` modeli ekle; `Customer` ile ForeignKey, `status` alanı choices, `total` DecimalField(max_digits=10, decimal_places=2). Migration’ı oluştur ve testini yaz."
- "`OrderListAPIView` için DRF serializer ve view yaz; queryset’i `select_related('customer')` ile optimize et, permission_classes `IsAuthenticated` olsun."
- "`Order` modeline `cancel` metodu ekle; stok miktarını geri yüklesin, `transaction.atomic` kullansın. İlgili pytest testini yaz."
- "Mevcut `Product` modelindeki `price` alanı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_related` ile 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_related` ekleyebilir. Sorgu sayısını `django-debug-toolbar` veya test assert’leriyle doğrulayın.
- **Transaction ve race condition:** `select_for_update`, `transaction.atomic` veya `F()` 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=True` gibi ayarları değiştirebilir veya `SECRET_KEY`'i yanlışlıkla commit’leyebilir. `git diff`'te `config/settings.py` değ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.txt` veya `pyproject.toml` iç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](/blog/agentvera-nasil-kullanilir/)).

## 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.

## Sık sorulanlar

**Claude Code bir Django projesinde nasıl kullanılır?** Proje kök dizininde terminalden claude komutunu çalıştırın. Ajan, proje dosyalarını okur ve sizin verdiğiniz görevleri yerine getirir; önce CLAUDE.md dosyasını okuyarak proje kurallarını öğrenir.

**Claude Code Django migration’ları yönetebilir mi?** Evet, model değişikliklerinde python manage.py makemigrations komutunu çalıştırıp migration dosyalarını oluşturabilir. Ancak migration çakışmaları ve veri dönüşümleri gibi karmaşık durumlarda üretilen kodu dikkatle incelemeniz gerekir.

**Claude Code DRF serializer ve view yazabilir mi?** Evet, Django REST framework için ModelSerializer, view ve URL yönlendirmelerini projedeki desenlere uygun şekilde üretebilir. Yine de izinler, sorgu optimizasyonu ve alan seçimi konularında ince ayar yapmanız gerekebilir.

**Claude Code Django testlerini çalıştırabilir mi?** Evet, pytest veya python manage.py test komutlarını çalıştırıp çıktıyı yorumlayabilir ve hataları düzeltebilir. Test veritabanı yapılandırması ve izolasyon için projenizin test komutlarını CLAUDE.md içinde netleştirmeniz faydalı olur.

---

**AgentVera hakkında.** AgentVera, Solviera Teknoloji tarafından geliştirilen macOS, Windows ve Linux masaüstü uygulamasıdır. 18 yapay zeka kodlama ajanını (Claude Code, Codex, Gemini CLI, Copilot, Cursor, Antigravity, opencode, Hermes, Qwen Code, Kimi Code, Kiro, Amp, Droid, Goose, Vibe, Crush, Aider, Cline) proje bazında, gerçek terminallerde ve kullanıcının kendi CLI kurulum ve girişleriyle yan yana çalıştırır. Ücretsiz planda sınırsız ajan vardır. İndir: https://agentvera.dev/indir/ · Fiyatlar: https://agentvera.dev/fiyatlar/
