Question: `python manage.py flush` removes data from the entire project. I would like to be able to do `python manage.py flush agivenapp` How can I do this?

Answer: 
sqlclear management command can be helpful...

```
Usage: ./manage.py sqlclear [options] <appname appname ...>

Prints the DROP TABLE SQL statements for the given app name(s).

```

for the postgresql you can do:

```
./manage.py sqlclear myapp | psql dbname

```

**UPDATE**
for apps with migrations and Django 1.7+:

```
python manage.py migrate <app> zero

```
For later versions of Django try in the Django shell:

```
from django.apps import apps
my_app = apps.get_app_config('my_app_name')
my_models = my_app.get_models()
for model in my_models:
    model.objects.all().delete()

```

More on the `apps` module can be found [here](https://docs.djangoproject.com/en/dev/ref/applications/).
Of course, you could convert this to a management command yourself using the management [infrastructure](https://docs.djangoproject.com/en/dev/howto/custom-management-commands/).