Respostas:
Dentro de um gerente:
def delete_everything(self):
Reporter.objects.all().delete()
def drop_table(self):
cursor = connection.cursor()
table_name = self.model._meta.db_table
sql = "DROP TABLE %s;" % (table_name, )
cursor.execute(sql)
'DELETE FROM %s' % (table_name, )
para aquela parte, deixando a mesa vazia, mas intacta.
De acordo com a documentação mais recente , o método correto para chamar seria:
Reporter.objects.all().delete()
delete
método da instância é chamado, enquanto com a delete
chamada no QuerySet
não é.
Se você deseja remover todos os dados de todas as suas tabelas, você pode tentar o comando python manage.py flush
. Isso excluirá todos os dados de suas tabelas, mas as próprias tabelas ainda existirão.
Veja mais aqui: https://docs.djangoproject.com/en/1.8/ref/django-admin/
Django 1.11 deleta todos os objetos de uma tabela de banco de dados -
Entry.objects.all().delete() ## Entry being Model Name.
Consulte a documentação oficial do Django aqui conforme citado abaixo - https://docs.djangoproject.com/en/1.11/topics/db/queries/#deleting-objects
Observe que delete () é o único método QuerySet que não é exposto no próprio Manager. Este é um mecanismo de segurança para evitar que você acidentalmente solicite Entry.objects.delete () e exclua todas as entradas. Se você quiser excluir todos os objetos, precisará solicitar explicitamente um conjunto de consulta completo:
Eu mesmo tentei o snippet de código visto abaixo em meu somefilename.py
# for deleting model objects
from django.db import connection
def del_model_4(self):
with connection.schema_editor() as schema_editor:
schema_editor.delete_model(model_4)
e dentro do meu views.py
eu tenho uma visão que simplesmente renderiza uma página html ...
def data_del_4(request):
obj = calc_2() ##
obj.del_model_4()
return render(request, 'dc_dash/data_del_4.html') ##
acabou excluindo todas as entradas de - model == model_4, mas agora vejo uma tela de erro no console de administração quando tento verificar se todos os objetos de model_4 foram excluídos ...
ProgrammingError at /admin/dc_dash/model_4/
relation "dc_dash_model_4" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "dc_dash_model_4"
Considere que - se não formos ao console de ADMIN e tentarmos ver os objetos do modelo - que já foram excluídos - o aplicativo Django funcionará exatamente como pretendido.
Existem algumas maneiras:
Para excluí-lo diretamente:
SomeModel.objects.filter(id=id).delete()
Para excluí-lo de uma instância:
instance1 = SomeModel.objects.get(id=id)
instance1.delete()
// não use o mesmo nome