我有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))
回溯(最近一次调用最后一次):文件“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(子命令).run_from_argv(self.argv)文件“ C:\ Python27 \ lib \ site-packages \ django \ core \ management \ base.py“,第348行,在run_from_argv中自执行(* args,** cmd_options)文件”C:\ Python27 \ lib \ site-packages \ django \ core \ management \ base.py“,第399行,执行输出= self.handle(* args,选项)文件”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行,发送内容Voicebalance activeMVNO = Functions.updateNonRuleMatchRecordByTarif (categoryId,type)文件“C:\ Users \ Development \ Desktop \ python \ crons \ includes \ functions.py”,第49行,在updateNonRuleMatchRecordByTarif函数.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行,在bulk_create中self._batched_insert(objs_with_pk,fields,batch_size)文件”C:\ Python27 \ lib \ site-packages \ django \ db \ models \ query .py“,第1056行,在_batched_insert中使用= 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行,在_insert中返回query.get_compiler(using = using).execute_sql(return_id)文件”C:\ Python27 \ lib \ site-packages \ django \ db \ models \ sql \ compiler.py“,第1059行,在execute_sql中为sql,params在self.as_sql()中:文件”C:\ Python27 \ lib \ site-packages \ django \ db \ models \ sql \ compiler.py “,第1019行,在as_sql中为obj in self.query.objs文件”C:\ Python27 \ lib \ site-packages \ django \ db \ models \ sql \ compiler.py“,第968行,在pre_save_val中返回field.pre_save (obj,add = True)文件“C:\ Python27 \ lib \ site-packages \ django \ db \ models \ fields__init __ . py”,第702行,在pre_save中返回getattr(model_instance,self.attname)AttributeError:'SubscriberBalance'对象没有属性'TOTAL_REMAIN_VOICE'
1 回答
问题是你不能只将
SubscriberBalance
对象提供给SubscriberBalanceProcess
创建功能 . 您应该首先使用公共字段的数据创建适当的实例: