2011-10-26 51 views
1

我的問題很簡單:與Django的外鍵屬性實例化對象外殼

在Django的殼牌如何實例化需要一個外鍵屬性的對象?

的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的殼...

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

謝謝!

艾瑪迪斯

回答

3

當實例化一個模型,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屬性。