12 промтов для Django: от моделей до REST API

12 промтов для Django: от моделей до REST API

Django — мощный бэкенд-фреймворк, но рутинный код (модели, вьюхи, сериализаторы) съедает время. Современные нейросети умеют генерировать этот код, если дать чёткий промт. В этой статье — 12 готовых промтов, которые я использую в работе с Django. Они покрывают полный цикл: от моделей до REST API. Все примеры базируются на официальной документации Django (docs.djangoproject.com) и Django REST Framework (django-rest-framework.org).

1. Генерация модели

Промт:

Создай модель Django для [сущность]. Укажи поля: [поля]. Добавь Meta-класс, str, get_absolute_url и уникальные ограничения.

Пример:

class Article(models.Model):
    title = models.CharField(max_length=200)
    slug = models.SlugField(unique=True)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering = ['-created_at']

    def get_absolute_url(self):
        return f'/articles/{self.slug}/'

2. Оптимизированные ORM-запросы

Промт:

Напиши ORM-запрос для [задача]. Используй select_related, prefetch_related, annotate. Добавь комментарии.

Пример:

articles = Article.objects.select_related('author').prefetch_related('comments').annotate(comments_count=Count('comments'))

3. Class-Based Views

Промт:

Создай ListView, DetailView, CreateView для [модель]. Добавь LoginRequiredMixin, поля form, success_url.

Пример:

class ArticleListView(ListView):
    model = Article
    paginate_by = 10
    template_name = 'blog/article_list.html'

4. Сериализаторы DRF

Промт:

Создай сериализатор DRF для [модель]. Добавь валидаторы, вложенные сериализаторы, методы create/update.

Пример:

class ArticleSerializer(serializers.ModelSerializer):
    author = UserSerializer(read_only=True)

    class Meta:
        model = Article
        fields = ['id', 'title', 'content', 'author']

5. ViewSet и Router

Промт:

Создай ModelViewSet для [модель] с кастомным действием. Зарегистрируй через DefaultRouter.

Пример:

class ArticleViewSet(viewsets.ModelViewSet):
    queryset = Article.objects.all()
    serializer_class = ArticleSerializer

    @action(detail=False, methods=['post'])
    def publish(self, request):
        pass

6. JWT-аутентификация

Промт:

Настрой JWT в DRF: установи simplejwt, добавь в settings, создай urls для token_obtain_pair и token_refresh, защити эндпоинты.

Пример:

INSTALLED_APPS += ['rest_framework_simplejwt']
REST_FRAMEWORK['DEFAULT_AUTHENTICATION_CLASSES'] = ('rest_framework_simplejwt.authentication.JWTAuthentication',)

7. Management-команды

Промт:

Создай management-команду для [задача]. Используй BaseCommand, аргументы, вывод через self.stdout.

Пример:

class Command(BaseCommand):
    def handle(self, *args, **options):
        self.stdout.write('Done')

8. Тесты

Промт:

Напиши pytest-тесты для [модуль]. Покрой модель, вьюху, API. Используй fixture и Client.

Пример:

def test_article_detail(client):
    response = client.get(f'/articles/{article.slug}/')
    assert response.status_code == 200

9. Оптимизация запросов

Промт:

Проанализируй код [код]. Найди N+1. Предложи исправления с select_related, prefetch_related, индексами.

Пример:

# до: articles = Article.objects.all() — N+1 в цикле
# после: articles = Article.objects.select_related('author')

10. Админка

Промт:

Настрой ModelAdmin: list_display, list_filter, search_fields, prepopulated_fields, inlines.

Пример:

class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title', 'author', 'created_at')
    prepopulated_fields = {'slug': ('title',)}

11. Сигналы

Промт:

Создай сигнал post_save для [модель]. Подключи через AppConfig.ready(). Объясни, когда сигнал лучше save().

Пример:

@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)

12. API с фильтрацией и пагинацией

Промт:

Создай DRF API с django-filter, SearchFilter и PageNumberPagination. Настрой фильтры и пагинацию.

Пример:

class ArticleFilter(django_filters.FilterSet):
    class Meta:
        model = Article
        fields = {'author': ['exact'], 'created_at': ['lte', 'gte']}

Заключение

Эти 12 промтов ускоряют разработку на Django: от моделей до REST API. Скопируйте, адаптируйте под свой проект и всегда проверяйте результат. Подписывайтесь на блог asibiont.com/blog, чтобы получать больше решений для бэкенда.

← Все статьи

Комментарии

Читайте также

Освоение построения RAG-систем: от нуля до продакшен-готовых RAG-пайплайнов

3 августа 2026

Курс по анализу временных рядов: освойте Prophet, ARIMA и LSTM с помощью обучения на основе ИИ

3 августа 2026

15 промтов для Cursor: ускоряем AI-assisted разработку в IDE

3 августа 2026

14 промтов для React Native: компоненты, навигация и работа с API

3 августа 2026

Мастерство управления временем — Тайм-менеджмент и продуктивность: как обучение на основе ИИ помогает освоить GTD, Pomodoro и Deep Work

3 августа 2026

Авиация и дроны: регулирование (ICAO, EASA, FAA, IATA) — почему обучение с ИИ обязательно в 2026 году

3 августа 2026

Курс эмоционального интеллекта в 2026 году: ROI обучения EQ, сравнение онлайн-форматов и преимущество ИИ Asibiont

3 августа 2026

Jetson Nano и Orin под управлением AI-агента: DeepStream, TensorRT и ASI Biont для edge-видеоаналитики

3 августа 2026

Kakehashi: запускаем macOS-бинарники на Linux ARM без перекомпиляции

3 августа 2026