# GitHub Copilot CLI ile Django projeleri: pratik rehber

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

GitHub Copilot CLI ile Django projesinde model, migration, DRF ve pytest döngüsünü adım adım öğrenin; kurulum dosyaları ve tuzaklar dahil.

**Kısaca:**

- GitHub Copilot CLI’yı terminalde copilot ile başlatıp Django projesinde küçük adımlarla model, migration ve test işleri yürütebilirsiniz.
- .github/copilot-instructions.md veya AGENTS.md içine Django komutları ve kuralları koymak ajanın ilk seferde doğru iş çıkarmasını sağlar.
- Migration çakışmaları, N+1 sorgular ve DRF güvenlik katmanları gibi noktalarda ajanın çıktısını test ve git diff ile doğrulamak gerekir.

GitHub Copilot CLI, Django projesinde terminalde `copilot` yazıp başlatılır; ajan proje dosyalarını okur, komutları çalıştırır ve sizin onayınızla değişiklik yapar. Django’nun uygulama, migration, ORM ve test araçları güçlü bir komut satırı döngüsü kurduğu için bu ajan iyi bir çalışma arkadaşı olur. Aşağıda kurulum, çalışma düzeni, tipik görevler, test doğrulama ve çoklu ajan kullanımı anlatılıyor. Daha önce ajanı kurmadıysanız [GitHub Copilot CLI](/ajanlar/copilot-cli/) sayfasındaki başlangıç adımlarını izleyin.

## Neden GitHub Copilot CLI Django işine uyar

Django’nun iş akışı zaten terminal etrafında döner: `python manage.py startapp`, `makemigrations`, `migrate`, `test`, `shell`. GitHub Copilot CLI aynı terminalde yaşar; `copilot` başlatıldığında proje dosyalarını doğrudan tarar ve `manage.py` komutlarını sizin yerinize önerebilir. Model–serializer–view–urls zinciri tekrarlı ve kuralı bellidir; ajan bu zinciri hızlı kurar. Ayrıca hata mesajlarını okuyup aynı oturumda düzeltebilir; migration hatasında `makemigrations` çıktısını görüp eksik alanı tamamlar. Gerçek bir Django projesinde en çok zaman alan kısım kod yazmak değil, doğru sırayı ve import zincirini kurmaktır; ajan bunu azaltır. Django’nun settings, apps, urls ve admin parçaları arasındaki bağımlılığı anlaması, tek başına snippet üretmesinden daha değerlidir.

## Projeyi ajan için hazırlamak

GitHub Copilot CLI, proje kökünde `.github/copilot-instructions.md` veya `AGENTS.md` dosyasını okur. Django projelerinde bu dosya kısa ve buyurgan olmalı; test, lint ve migration komutları ile klasör kuralları ajanın ilk denemesinde doğru yere yazmasını sağlar. Ayrıca `settings.py` modülünün hangi ortamı kullandığını, testlerin nasıl koştuğunu belirtmek gerekir. Aşağıdaki örnek, gerçek bir projede işe yarayan asgari bir talimat dosyasıdır.

```markdown
# Django projesi için ajan talimatları

## Komutlar
- Bağımlılık: `uv sync` (yoksa `pip install -r requirements/dev.txt`)
- Test: `pytest` (pytest-django kurulu)
- Lint: `ruff check .`
- Format: `black .`
- Tip kontrolü: `mypy .` (opsiyonel)
- Migration: `python manage.py makemigrations`, `python manage.py migrate`
- Kontrol: `python manage.py check`

## Klasör düzeni
- Yeni uygulamalar `apps/<app_name>/` altında oluşturulur.
- Her uygulamanın testleri `tests/` paketindedir.
- Ortak yardımcılar `common/` altında; yeni util yazmadan önce oraya bak.

## Django kuralları
- Model değişikliği yapınca mutlaka migration üret; mevcut migration dosyasını elle düzenleme.
- ORM sorgularında N+1 üretme; ilişkili veri için `select_related` veya `prefetch_related` kullan.
- İş mantığını view içinde bırakma; servis fonksiyonuna veya model metoduna taşı.
- DRF serializer'larında `ModelSerializer` kullan ve alan adlarını `source` ile değiştir.
- Şablonda karmaşık koşul yazma; template tag veya include ile böl.
- Testlerde `@pytest.mark.django_db` kullanmayı unutma.
```

Bu dosyanın yazım mantığı hakkında daha geniş bilgi için [CLAUDE.md nasıl yazılır? AGENTS.md ve GEMINI.md rehberi](/blog/claude-md-nasil-yazilir/) sayfasına bakabilirsiniz. GitHub Copilot CLI için de aynı prensipler geçerlidir; dosyayı değiştirdikten sonra ajanı yeniden başlatmak en temiz sonucu verir.

## Çalışma döngüsü ve örnek promptlar

Ajanla çalışırken şu sırayı koruyun: önce istenen değişikliği net tanımlayın, sonra ajanın küçük ve doğrulanabilir bir adım atmasını isteyin, testleri çalıştırın, `git diff` ile değişikliği gözden geçirin. Django projelerinde tek seferde hem model hem migration hem view değişikliği istemek risklidir; bunun yerine model ve migration tamamlanınca test edin, sonra DRF veya view katmanına geçin. Ajan aynı oturumda birkaç komut çalıştırabilir; yine de her adımı siz onaylayın. Daha fazla kullanım ipucu için [GitHub Copilot CLI nasıl kullanılır? Adım adım rehber](/blog/copilot-cli-nasil-kullanilir/) yazısına göz atın.

Aşağıdaki beş prompt tipik Django görevleri için başlangıç noktasıdır:

- `apps/orders` uygulamasını kur, `Order` ve `OrderItem` modellerini yaz, `python manage.py makemigrations` çalıştır ve oluşan migration dosyasını göster.
- `Product` modeline `slug` alanı ekle, migration üret, `python manage.py test apps.catalog` çalıştır ve bozulan importları düzelt.
- `ProductViewSet` ve `ProductSerializer` yaz, `urls.py` dosyasına router ile bağla, sonra `pytest apps/catalog` çalıştır.
- Şu view içindeki `for order in orders` döngüsünde `order.items.all()` çağrısı N+1 üretiyor; `prefetch_related` kullanarak düzelt ve sorgu sayısını çıktıda göster.
- pytest-django ile `POST /api/orders/` endpoint’inin stok azaltma senaryosunu yaz; test geçene kadar düzelt.

Bu promptlarda komut adlarını açıkça yazmak ajanın doğru aracı çağırmasını sağlar. Türkçe veya İngilizce fark etmez; önemli olan dosya yolu ve beklenen çıktıyı vermektir.

## Ajanın iyi olduğu işler ve Django tuzakları

Ajan özellikle tekrarlı Django katmanlarında hızlıdır, ancak güvenlik ve veri bütünlüğü sizin gözetiminizde olmalıdır.

| Görev | Ajan neyi iyi yapar | Dikkat edilecek nokta |
|---|---|---|
| Model ve migration | `models.py` alanlarını, `__str__` ve admin kaydını hızlı üretir | Mevcut migration dosyalarını düzenlemeye kalkabilir; her zaman yeni migration isteyin |
| DRF endpoint | Serializer, ViewSet, router zincirini kısa sürede kurar | Permission, throttle ve filtreleme sınıflarını unutabilir; istekte açıkça sayın |
| ORM sorgusu | `select_related`/`prefetch_related` önerebilir | Lazy relation’ları test etmeden yeterli diyebilir; sorgu sayısını doğrulayın |
| pytest-django testi | Basit fixture ve `django_db` marker’ını yazar | Gerçek DB yerine transactional test davranışını karıştırabilir; fixture kapsamını kontrol edin |
| Şablon ve form | Form ve template tag üretir | Şablona Python benzeri logic sıkıştırabilir; `TemplateDoesNotExist` hatalarını göz ardı edebilir |

Django’ya özgü en büyük tuzak migration çakışmasıdır. Ajan, var olan bir migration dosyasını değiştirmeye kalkabilir; bu üretimde geri alınamaz farklara yol açar. İkincisi `settings.py` ortam farkıdır: ajan test için local ayar kullanırken siz üretim değerlerini gözden kaçırabilirsiniz. Üçüncüsü ORM N+1: ajan incelemeden bırakırsa sayfa yavaşlar. Dördüncüsü DRF’de `permission_classes`, `authentication_classes`, `filter_backends` gibi güvenlik katmanlarını unutabilir; promptlarda bunları açıkça isteyin. Beşincisi sinyaller ve transaction sınırlarıdır; ajan `post_save` sinyalini yanlış yerde kullanabilir veya `transaction.atomic` sarmayı atlayabilir. Bu noktaları `git diff` ile özellikle gözden geçirin.

## Django’da test ve doğrulama

Ajanın her adımından sonra üç kontrolü birlikte çalıştırın: `python manage.py check`, `pytest`, `python manage.py makemigrations --check --dry-run`. Birincisi Django proje yapılandırmasını, ikincisi davranışı, üçüncüsü migration eksiklerini yakalar. Ajan test geçti dese bile `git diff --stat` ile hangi dosyaların değiştiğini görün; özellikle `migrations/` altındaki her dosyayı okuyun. pytest-django kullanan projede `pytest` komutu yeterli; test veritabanı oluşturulurken takılırsa ajanın `--reuse-db` kullanmasını isteyin. Testlerin gerçekten kritik senaryoyu kapsadığını kontrol edin; ajan bazen sadece 200 dönen yüzeysel bir test yazar. Ayrıca `python manage.py check --deploy` ile üretime yakın ayarları da doğrulatabilirsiniz; bu ajanın gözden kaçırdığı güvenlik ayarlarını ortaya çıkarır.

## Birden çok ajanı AgentVera ile koşmak

Birden çok ajanı aynı Django projesinde koşturacaksanız AgentVera uygun bir kontrol paneli olur. Her ajan kendi git worktree’sinde çalıştığı için migration dosyaları ve `apps/` klasörleri çakışmaz. Ajan bir turu bitirdiğinde ikinci model kodu inceler; bulgular doğrudan `file:line` olarak verilir, böylece bozuk import veya yanlış migration hızla bulunur. Tur snapshot’ları checkpoint olarak tutulur; hatalı bir değişiklik tek tıkla geri alınabilir. Token bütçeleri günlük taşmayı önler; ajan duraksasa bile konuşma geçmişi korunur. Django işlerinde bu özellikler çoklu ajan koordinasyonunu güvenli hale getirir.

## Sonuç

GitHub Copilot CLI, Django projelerinde model, migration, test ve DRF döngüsünü hızlandıran pratik bir yardımcıdır. Başarı, doğru talimat dosyası ve küçük adımlarla çalışmaktan geçer. Her çıktıyı `git diff` ve testlerle doğrulayın; migration ve güvenlik katmanlarını asla atlamayın.

## Sık sorulanlar

**GitHub Copilot CLI Django projesinde nasıl başlatılır?** Proje kökünde terminal açıp copilot komutunu çalıştırmanız yeterlidir. Ajan proje dosyalarını okur ve sizden yapılacak işi ister; Django komutlarını aynı oturumda çalıştırabilir.

**Copilot CLI Django migration dosyalarını güvenle yönetebilir mi?** Yeni migration üretmeyi iyi yapar, ancak mevcut migration dosyalarını elle düzenlememesi gerektiği talimatlarda açıkça yazılmalıdır. Migration sonrası python manage.py makemigrations --check --dry-run ile doğrulama şarttır.

**GitHub Copilot CLI hangi talimat dosyasını okur?** Proje kökünde .github/copilot-instructions.md veya AGENTS.md dosyasını okur. Django projesi için build, test, lint komutları ve migration kuralları bu dosyaya yazılmalıdır.

**GitHub Copilot CLI Django testlerini çalıştırabilir mi?** Evet, pytest veya python manage.py test komutlarını çalıştırabilir ve hata çıktılarını okuyarak düzeltme önerebilir. Yine de her değişiklik sonrası testleri siz de çalıştırıp sonucu görmelisiniz.

---

**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/
