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中了