django get_or_create with defaults参数

rom*_*rom 4 django parameters dictionary

我有以下代码的语法错误:

ids_row={}
ids_row["releve_annee"]=int(row[0])
ids_row["releve_mois"]=int(row[1])
ids_row["no_ordre"]=int(row[2])
defaults={}
defaults["titre_rmc"]=row[3].strip()
defaults["notes"]=row[17].strip()
instance, created = Act.objects.get_or_create(**ids_row, defaults=defaults)
Run Code Online (Sandbox Code Playgroud)

我的模特:

class Act(models.Model):
    releve_annee=models.IntegerField(max_length=4, blank=False, null=False)
    releve_mois=models.IntegerField(max_length=2, blank=False, null=False)
    no_ordre=models.IntegerField(max_length=2, blank=False, null=False)
    titre_rmc=models.CharField(max_length=2000, blank=False, null=False)
    notes=models.CharField(max_length=2000,  blank=True, null=True, default=None)
        class Meta:
        unique_together=(("releve_annee", "releve_mois", "no_ordre"), )
Run Code Online (Sandbox Code Playgroud)

在一个shell中:

instance, created = Act.objects.get_or_create(**ids_row, defaults=defaults)
                                                       ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

如果我删除defaults=defaults,错误消失.怎么了?

Roh*_*han 9

尝试更改参数序列,

instance, created = Act.objects.get_or_create(defaults=defaults, **ids_row)
Run Code Online (Sandbox Code Playgroud)

  • 你不能在任何函数的前面有任何*args或**kwargs.那些总是在最后. (4认同)