我的问题很简单:
在Django Shell中如何实例化一个需要外键属性的对象?
models.py
class Musician(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
instrument = models.CharField(max_length=100)
class Album(models.Model):
artist = models.ForeignKey(Musician)
name = models.CharField(max_length=100)
release_date = models.DateField()
num_stars = models.IntegerField()
在django shell中......
p = Person(
first_name="Fred"
,last_name="Flintstone"
,instrument="guitar"
)
p.save()
...
a = Album(
artist = " " #<------ WHAT DO I PUT HERE ? :)))))
,name="u rock "
,release_date ="today"
,num_stars="4"
)
a.save()
谢谢!
Amadeus的
答案 0 :(得分:4)
实例化模型时,需要将ForeignKey字段设置为相应模型的实例。在你的情况下:
p = Musician(
first_name="Fred",
last_name="Flintstone",
instrument="guitar"
)
p.save()
import datetime
a = Album(
artist=p,
name="u rock",
release_date=datetime.datetime.now().date(),
num_stars=4
)
a.save()
请注意,我还修复了一些拼写错误,并为release_date和num_stars属性使用了正确的数据类型。