2011-05-08 86 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