【问题标题】:Instantiating object with foreignkey attribute with the Django shell使用 Django shell 实例化具有外键属性的对象
【发布时间】:2011-12-15 22:03:45
【问题描述】:

我的问题很简单:

在 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()

谢谢!

艾玛迪斯

【问题讨论】:

    标签: shell django-models foreign-keys


    【解决方案1】:

    在实例化模型时,需要将 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 属性使用了正确的数据类型。

    【讨论】:

      猜你喜欢
      • 2021-09-24
      • 2013-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-02
      • 1970-01-01
      • 2015-04-30
      相关资源
      最近更新 更多