2011-05-08 69 views
1

我有以下型號定義:傳遞實例FORMSET

class Team(models.Model): 
    Name = models.CharField(max_length=250) 

class Fixture(models.Model): 
    HomeTeam = models.ForeignKey(Team, related_name="HomeTeam") 
    AwayTeam = models.ForeignKey(Team, related_name="AwayTeam") 
    HomeTeamScore = models.IntegerField(blank=True, null=True) 
    AwayTeamScore = models.IntegerField(blank=True, null=True) 
    Date = models.DateTimeField() 

class Prediction(models.Model): 
    Fixture = models.ForeignKey(Fixture) 
    PredictHomeTeam = models.IntegerField() 
    PredictAwayTeam = models.IntegerField() 
    PredictionDate = models.DateTimeField() 
    User = models.ForeignKey(User) 

因此,如果使用過濾器來獲得基於日期6個燈具話,我想這些進入PredictionForm的一個formset但我正在努力如何通過夾具,因爲它需要作爲一個外鍵領域。

這是我的第一個django項目,所以我想我也在尋找確認我是否在正確的線條上使用formset。

回答

2

你想使用一個model formset,其工作就像一個正常的formset但瞭解如何使用模型。

from django.forms.models import modelformset_factory 
PredictionFormSet = modelformset_factory(Prediction) 

的表單集文檔介紹瞭如何use initial data with your formset

PredictionFormSet(initial=[{'Fixture': fixture, 'User': user}]) 

正如一個音符,使用小寫和下劃線的所有類方法/屬性。取而代之的是:

Fixture = models.ForeignKey(Fixture) 

這樣做:

fixture = models.ForeignKey(Fixture) 

這使得它更易於閱讀和推理你對其他程序員的代碼。你應該閱讀PEP 8這是官方的Python風格指南。

+0

看起來像我以後一樣。感謝會議提示。 – xander 2011-05-08 17:56:59