Python Django:人口众多
我正在开发我的第一个Django应用程序,并希望创建一个脚本,将数据填充到我的模型中以进行测试,类似于使用Django处理Tango时所做的操作。() 我知道如何填充大多数模型字段,但却在填充许多字段。最好的办法是什么 models.py 填充.pyPython Django:人口众多,python,django,Python,Django,我正在开发我的第一个Django应用程序,并希望创建一个脚本,将数据填充到我的模型中以进行测试,类似于使用Django处理Tango时所做的操作。() 我知道如何填充大多数模型字段,但却在填充许多字段。最好的办法是什么 models.py 填充.py 如果要在“添加艺术家”功能中添加流派,请将流派作为列表传入,并将其添加到多对多字段,如下所示: def add_artist(name, genres): a, created = Artist.objects.get_or_create(na
如果要在“添加艺术家”功能中添加流派,请将流派作为列表传入,并将其添加到多对多字段,如下所示:
def add_artist(name, genres):
a, created = Artist.objects.get_or_create(name=name)
for genre in genres:
a.add(genre)
更多信息请参见如果要在“添加艺术家”功能中添加流派,请将流派作为列表传入,并将其添加到多对多字段,如下所示:
def add_artist(name, genres):
a, created = Artist.objects.get_or_create(name=name)
for genre in genres:
a.add(genre)
更多信息请参见如果要在“添加艺术家”功能中添加流派,请将流派作为列表传入,并将其添加到多对多字段,如下所示:
def add_artist(name, genres):
a, created = Artist.objects.get_or_create(name=name)
for genre in genres:
a.add(genre)
更多信息请参见如果要在“添加艺术家”功能中添加流派,请将流派作为列表传入,并将其添加到多对多字段,如下所示:
def add_artist(name, genres):
a, created = Artist.objects.get_or_create(name=name)
for genre in genres:
a.add(genre)
有关详细信息,请参阅上的文档,因为不需要使用脚本。将名为
m2m
的多对多字段添加到文档中的示例中,如下所示:
[
{
"model": "myapp.person",
"pk": 1,
"fields": {
"first_name": "John",
"last_name": "Lennon"
"m2m": [1,2]
}
},
{
"model": "myapp.person",
"pk": 2,
"fields": {
"first_name": "Paul",
"last_name": "McCartney"
"m2m": [1,2]
}
}
]
您将看到m2m字段只是将主键列表作为参数。您应该阅读上的文档,因为您不需要使用脚本来执行此操作。将名为
m2m
的多对多字段添加到文档中的示例中,如下所示:
[
{
"model": "myapp.person",
"pk": 1,
"fields": {
"first_name": "John",
"last_name": "Lennon"
"m2m": [1,2]
}
},
{
"model": "myapp.person",
"pk": 2,
"fields": {
"first_name": "Paul",
"last_name": "McCartney"
"m2m": [1,2]
}
}
]
您将看到m2m字段只是将主键列表作为参数。您应该阅读上的文档,因为您不需要使用脚本来执行此操作。将名为
m2m
的多对多字段添加到文档中的示例中,如下所示:
[
{
"model": "myapp.person",
"pk": 1,
"fields": {
"first_name": "John",
"last_name": "Lennon"
"m2m": [1,2]
}
},
{
"model": "myapp.person",
"pk": 2,
"fields": {
"first_name": "Paul",
"last_name": "McCartney"
"m2m": [1,2]
}
}
]
您将看到m2m字段只是将主键列表作为参数。您应该阅读上的文档,因为您不需要使用脚本来执行此操作。将名为
m2m
的多对多字段添加到文档中的示例中,如下所示:
[
{
"model": "myapp.person",
"pk": 1,
"fields": {
"first_name": "John",
"last_name": "Lennon"
"m2m": [1,2]
}
},
{
"model": "myapp.person",
"pk": 2,
"fields": {
"first_name": "Paul",
"last_name": "McCartney"
"m2m": [1,2]
}
}
]
您将看到m2m字段仅将主键列表作为参数。多功能管理器的add方法能够获取多个模型或ID:
ids_list = [1,2,3]
artist.genre.add(*ids_list) # or
artist.genre.add(1,2,3)
或
因此,您可以重写您的方法:
def add_artist(name, genres):
a, created = Artist.objects.get_or_create(name=name)
a.genre.add(*Genre.objects.filter(name__in=[genres]))
ManyToMany manager的add方法能够获取多个模型或ID:
ids_list = [1,2,3]
artist.genre.add(*ids_list) # or
artist.genre.add(1,2,3)
或
因此,您可以重写您的方法:
def add_artist(name, genres):
a, created = Artist.objects.get_or_create(name=name)
a.genre.add(*Genre.objects.filter(name__in=[genres]))
ManyToMany manager的add方法能够获取多个模型或ID:
ids_list = [1,2,3]
artist.genre.add(*ids_list) # or
artist.genre.add(1,2,3)
或
因此,您可以重写您的方法:
def add_artist(name, genres):
a, created = Artist.objects.get_or_create(name=name)
a.genre.add(*Genre.objects.filter(name__in=[genres]))
ManyToMany manager的add方法能够获取多个模型或ID:
ids_list = [1,2,3]
artist.genre.add(*ids_list) # or
artist.genre.add(1,2,3)
或
因此,您可以重写您的方法:
def add_artist(name, genres):
a, created = Artist.objects.get_or_create(name=name)
a.genre.add(*Genre.objects.filter(name__in=[genres]))
谢谢你伸出援手。我遇到了以下问题:
Traceback(上次调用):文件“populate.py”,第37行,在populate()文件“populate.py”,第19行,在populate justin_timberlake=add_artist(name='justin timberlake',genres='rnb',pop'])文件“populate populate.py,第31行,在add_artist a.add(genre)中AttributeError:“tuple”对象没有属性“add”
啊,很抱歉,现在修复了它。错误是由于get\u或\u create
方法导致的,该方法返回元组的形式为(对象,已创建)
,其中created
为True
,如果对象已创建,则返回False
。有关获取或创建方法的更多信息,请参阅。感谢联系。我遇到了以下问题:Traceback(上次调用):文件“populate.py”,第37行,在populate()文件“populate.py”,第19行,在populate justin_timberlake=add_artist(name='justin timberlake',genres='rnb',pop'])文件“populate populate.py,第31行,在add_artist a.add(genre)中AttributeError:“tuple”对象没有属性“add”
啊,很抱歉,现在修复了它。错误是由于get\u或\u create
方法导致的,该方法返回元组的形式为(对象,已创建)
,其中created
为True
,如果对象已创建,则返回False
。有关获取或创建方法的更多信息,请参阅。感谢联系。我遇到了以下问题:Traceback(上次调用):文件“populate.py”,第37行,在populate()文件“populate.py”,第19行,在populate justin_timberlake=add_artist(name='justin timberlake',genres='rnb',pop'])文件“populate populate.py,第31行,在add_artist a.add(genre)中AttributeError:“tuple”对象没有属性“add”
啊,很抱歉,现在修复了它。错误是由于get\u或\u create
方法导致的,该方法返回元组的形式为(对象,已创建)
,其中created
为True
,如果对象已创建,则返回False
。有关获取或创建方法的更多信息,请参阅。感谢联系。我遇到了以下问题:Traceback(上次调用):文件“populate.py”,第37行,在populate()文件“populate.py”,第19行,在populate justin_timberlake=add_artist(name='justin timberlake',genres='rnb',pop'])文件“populate populate.py,第31行,在add_artist a.add(genre)中AttributeError:“tuple”对象没有属性“add”
啊,很抱歉,现在修复了它。错误是由于get\u或\u create
方法导致的,该方法返回元组的形式为(对象,已创建)
,其中created
为True
,如果对象已创建,则返回False
。有关get\u或\u create
方法的更多信息,请参阅,如何格式化genres
输入。到目前为止,我在运行genres\u queryset
时得到的是空列表。这就是我目前拥有的:john\u coltrane=