【发布时间】:2016-04-16 20:24:45
【问题描述】:
我有 2 个相似模式的模型,我想从 model1 批量复制到 model2 但 model2 有 3 个字段,但我想在这些字段中存储 null。
class SubscriberBalanceProcess(models.Model):
VOICE_SOC = models.CharField(max_length=50, null=True)
SMS_SOC = models.CharField(max_length=50, null=True)
DATA_SOC = models.CharField(max_length=50, null=True)
DATE_TIME = models.DateTimeField(auto_now_add=True, blank=True)
TOTAL_REMAIN_VOICE = models.BigIntegerField(default=0, null=True, blank=True)
TOTAL_REMAIN_SMS = models.BigIntegerField(default=0, null=True, blank=True)
TOTAL_REMAIN_DATA = models.BigIntegerField(max_length=100, null=True, blank=True)
class Meta:
db_table = "SUBSCRIBER_BALANCE_PROCESS_TEST"
class SubscriberBalance(models.Model):
VOICE_SOC = models.CharField(max_length=50, null=True)
SMS_SOC = models.CharField(max_length=50, null=True)
DATA_SOC = models.CharField(max_length=50, null=True)
DATE_TIME = models.DateTimeField(auto_now_add=True, blank=True)
FILE_ID = models.CharField(max_length=255, null=True)
class Meta:
db_table = 'subscriber_balance'
SubscriberBalanceProcess.objects.bulk_create(SubscriberBalance.objects.filter(VOICE_STATUS='N', SMS_FLAG=1, TENANT_ID__in=loginIdList))
Traceback(最近一次调用最后一次):文件“manage.py”,第 10 行,在 execute_from_command_line(sys.argv) 文件 "C:\Python27\lib\site-packages\django\core\management__init__.py", 第 353 行,在 execute_from_command_line utility.execute() 文件 "C:\Python27\lib\site-packages\django\core\management__init__.py", 第 345 行,执行中 self.fetch_command(subcommand).run_from_argv(self.argv) 文件“C:\Python27\lib\site-packages\django\core\management\base.py”,行 348, 在 run_from_argv self.execute(*args, **cmd_options) 文件“C:\Python27\lib\site-packages\django\core\management\base.py”,行 399,在执行中 输出 = self.handle(*args, **options) 文件 "C:\Users\Development\Desktop\python\crons\management\commands\sendsms_voicebalance_process_rule_tarif.py", 第 74 行,在句柄中 self.sendsmsVoicebalance() 文件“C:\Users\Development\Desktop\python\crons\management\commands\sendsms_voicebalance_process_rule_tarif.py”, 第 30 行,在 sendms Voicebalance 中 activeMVNO = Functions.updateNonRuleMatchRecordByTarif(categoryId, type) 文件 "C:\Users\Development\Desktop\python\crons\includes\functions.py", 第 49 行,在 updateNonRuleMatchRecordByTarif 中 Functions.truncateUpdateVoice(loginIdList) 文件 "C:\Users\Development\Desktop\python\crons\includes\functions.py", 第 64 行,在 truncateUpdateVoice SubscriberBalanceProcess.objects.bulk_create(SubscriberBalance.objects.filter(VOICE_STATUS='N', SMS_FLAG=1, TENANT_ID__in=loginIdL ist)) 文件 “C:\Python27\lib\site-packages\django\db\models\manager.py”,第 122 行, 在 manager_method 中 返回 getattr(self.get_queryset(), name)(*args, **kwargs) 文件“C:\Python27\lib\site-packages\django\db\models\query.py”,第 447 行, 批量创建 self._batched_insert(objs_with_pk, fields, batch_size) 文件“C:\Python27\lib\site-packages\django\db\models\query.py”,第 1056 行, 在 _batched_insert using=self.db) 文件“C:\Python27\lib\site-packages\django\db\models\manager.py”,第 122 行, 在 manager_method 中 返回 getattr(self.get_queryset(), name)(*args, **kwargs) 文件“C:\Python27\lib\site-packages\django\db\models\query.py”,第 1039 行, 在_插入 返回 query.get_compiler(using=using).execute_sql(return_id) 文件 "C:\Python27\lib\site-packages\django\db\models\sql\compiler.py", 第 1059 行,在 execute_sql 中 对于 sql,self.as_sql() 中的参数:文件“C:\Python27\lib\site-packages\django\db\models\sql\compiler.py”,行 1019,在 as_sql 中 对于 self.query.objs 文件“C:\Python27\lib\site-packages\django\db\models\sql\compiler.py”中的 obj,行 968,在 pre_save_val 返回 field.pre_save(obj, add=True) 文件 "C:\Python27\lib\site-packages\django\db\models\fields__init__.py", 第 702 行,在 pre_save 中 return getattr(model_instance, self.attname)
AttributeError: 'SubscriberBalance' 对象没有属性 'TOTAL_REMAIN_VOICE'
【问题讨论】:
-
请在reading this之后尝试修改您的问题。
-
请阅读以下有关如何格式化代码(和堆栈跟踪)的内容:meta.stackoverflow.com/questions/251361/…