Metadata-Version: 2.4
Name: django-crew-tools
Version: 1.0.0
Summary: Universal CrewAI tools for Django models.
Author: Zakir Aghayev
License-Expression: MIT
Keywords: django,crewai,agents,tools,orm
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: django>=4.0
Requires-Dist: crewai>=0.28.0
Dynamic: license-file

# django-crew-tools

`django-crew-tools` turns a Django model into 5 CrewAI tools: create, read, update, delete, and list.

## Install

```bash
pip install django-crew-tools
```

## Basic usage

```python
from crewai import Agent
from django_crew_tools import ModelToolSet
from library.models import Book


class BookToolSet(ModelToolSet):
    model = Book


agent = Agent(
    role="Library Manager",
    goal="Manage books in the Django database",
    tools=BookToolSet.as_tools(),
)
```

## Select actions

```python
tools = BookToolSet.as_tools(actions=["create", "read", "list"])
```

## Scoped usage

```python
from contextvars import ContextVar
from django_crew_tools import ModelToolSet
from library.models import Book

current_user = ContextVar("current_user", default=None)


class UserBookToolSet(ModelToolSet):
    model = Book

    def get_queryset(self):
        return Book.objects.filter(owner=current_user.get())

    def inject_fields(self):
        return {"owner": current_user.get()}
```

## Output formats

```python
class JsonBookToolSet(ModelToolSet):
    model = Book
    output_format = "json"
```

## Development

Run the package test suite with:

```bash
python tests/runtests.py
```
