我定义了以下模型:
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)
因此,如果使用过滤器来获得基于Date的6个灯具,那么我想将它们传递给PredictionForm的一个formset,但我正在努力如何传入灯具,因为它需要作为外键字段。
这是我的第一个django项目,所以我想我也在寻找确认我是否在使用formset的正确方面。
答案 0 :(得分:3)
您希望使用model formset,其工作方式与普通formset相同,但了解如何使用模型。
from django.forms.models import modelformset_factory
PredictionFormSet = modelformset_factory(Prediction)
formset文档介绍了如何use initial data with your formset:
PredictionFormSet(initial=[{'Fixture': fixture, 'User': user}])
就像注释一样,对所有类方法/属性使用小写和下划线。而不是:
Fixture = models.ForeignKey(Fixture)
这样做:
fixture = models.ForeignKey(Fixture)
这使得更容易阅读和推理其他程序员的代码。你应该阅读PEP 8这是官方的Python风格指南。