我有一个问题,在模型名称中使用变量,我想采取这个命令:
MyVar.objects.all().delete()
并以同样的方式我有一个问题采取这个:
class MyCsvModel(CsvDbModel):
class Meta:
dbModel = MyVar
delimiter = delimiter_csv
这些行动是在一个阶级的方法 . 和变量是在这里创建的方法 .
抱歉我的英文,我是初学者......
编辑:
我的代码:
from etl.models import MvmtjExportTemps, MvmtjExport
from django.db import models
[...]
model_name = self.table_temporaire[self.numero_edi]
getattr(models, model_name).objects.all().delete()
class MyCsvModel(CsvDbModel):
class Meta:
dbModel = getattr(models, model_name)
delimiter = delimiter_csv
我有这个结果:
环境:请求方法:GET请求URL:http://127.0.0.1:8000 / etc / integration / Django版本:1.8.18 Python版本:3.6.1已安装的应用程序:['django.contrib.admin','django .contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','pec','topo','bootstrap3_datetime', 'todo_app','debug_toolbar','bi','etl']已安装的中间件:['debug_toolbar.middleware.DebugToolbarMiddleware','django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.auth.middleware.SessionAuthenticationMiddleware','django.contrib.messages .middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware']回溯:文件“C:\ git \ ATH_intranet \ env_p3 \ lib \ site-packages \ django \ core \ handlers \ base.py”i n get_response 132. response = wrapped_callback(request,* callback_args,** callback_kwargs)IntegrationExtraction 188中的文件“c:\ git \ ATH_intranet \ etl \ views.py”.importation.ImportationTableTemporaire(fichier)文件“c:\ git \ ATH_intranet在ImportationTableTemporaire 112中的\ etl \ class_perso.py“.getattr(models,model_name).objects.all() . delete()异常类型:/ etl / integration / Exception中的AttributeError值:模块'django.db.models'没有属性'MvmtjExportTemps'
编辑2:
最后我需要在import和getattr中添加位置,如下所示:
import etl.models
#vidange table temporaire
model_name = self.table_temporaire[self.numero_edi]
getattr(etl.models, model_name).objects.all().delete()
# creation de la class correspondant a la table temporaire
class MyCsvModel(CsvDbModel):
class Meta:
dbModel = getattr(etl.models, model_name)
delimiter = delimiter_csv
1 回答