Python 在django中使用get_或_create添加相关项

Python 在django中使用get_或_create添加相关项,python,django,django-models,Python,Django,Django Models,我正试图在django 1.8中获取或创建一条相关记录,如下所示: 在models.py中 from django.db import models import datetime class ScanItem(models.Model): # Stock code code = models.CharField(max_length=20) class Scan(models.Model): # Date of scan d = models.DateFi

我正试图
在django 1.8中获取或创建一条相关记录,如下所示:

在models.py中

from django.db import models
import datetime

class ScanItem(models.Model):
    # Stock code
    code = models.CharField(max_length=20)


class Scan(models.Model):
    # Date of scan
    d = models.DateField(primary_key=True, default=datetime.date.today)
    item = models.ForeignKey(ScanItem, related_name='scan_related_scanitem',null=True)
我的代码:

import datetime

# Todays date
d=datetime.date.today()

# Get or create a 'Scan' for today
scan_object, scan_object_created = Scan.objects.get_or_create(
               d__exact=d,
               defaults={'d': d, }
)

# Add an item, relate it to 'Scan'
code = "ABCDEF001"
i, i_created = ScanItem.objects.get_or_create(
               code__exact=code, 
               scan_related_scanitem__exact=scan_object,
               defaults={
                   'scan_related_scanitem': scan_object,
                   'code': code, 
               }
)
当我运行此操作时,我会得到以下错误:

TypeError: 'scan_related_scanitem' is an invalid keyword argument for this function

如何指定
ScanItem
的默认值,因为它需要链接到
Scan
。这是从ScanItem返回到Scan的链接的相关名称。forwards关系使用实际的字段名,就像任何其他字段一样。

foreignkey应该位于
ScanItem
对象上,而不是
Scan

我没有检查字段的正确性,但是在这种情况下,您不需要
默认值,因为它们已经在args中了