Что вам нужно, это get_model
.Вы можете получить модель по названию модели, указанному get_model
.Например:
Для Джанго <1,9: </p>
from django.db.models.loading import get_model
mymodel = get_model('app_name', 'model_name')
Таким образом, вы можете изменить метод следующим образом:
def handle(self, *args, **options):
self.stdout.write("Begin")
with atomic(using='default'):
try:
path = options['model']
app, model = path.split('.')[:2]
mymodel = get_model(app, model) <--get model from string argument
mymodel.objects.all().delete()
except Exception as e:
raise CommandError("Error {}".format(e))
self.stdout.write("Complete")
Для Джанго> = 1,9:
from django.apps import apps
mymodel = apps.get_model('app_name', 'model_name')
Таким образом, вы можете изменить метод следующим образом:
def handle(self, *args, **options):
self.stdout.write("Begin")
with atomic(using='default'):
try:
path = options['model']
app, model = path.split('.')[:2]
mymodel = apps.get_model(app, model) <--get model from string argument
mymodel.objects.all().delete()
except Exception as e:
raise CommandError("Error {}".format(e))
self.stdout.write("Complete")