Создание формы на основе списка спортивных приспособлений, а затем сбор результатов для этих - PullRequest
0 голосов
/ 14 июня 2019

Я создаю приложение для записи прогнозов для набора из 10 футбольных матчей каждую неделю. Для генерации формы я хочу вернуть список из 10 приборов, определенных в форме базы данных на текущую игровую неделю. Затем пользователь введет результаты и будет сохранен в модели entry_data

Я пробовал много вариаций, и самое близкое, что у меня есть, - это inlineformset_factory, но это работает только с одним объектом. Как можно инициировать это со всеми 10 приборами?

Я чувствую, что могу взломать это, чтобы работать с циклами и генерировать много наборов форм, но чувствую, что должен быть более элегантный способ

Models.py


#to save entries 
class entry_data(models.Model):
    team_id = models.ForeignKey(usr_teams, models.CASCADE)
    fixture_id = models.ForeignKey(Fixtures, models.CASCADE)
    score_home = models.PositiveIntegerField(default=0)
    score_away = models.PositiveIntegerField(default=0)

# list of fixtures for each gameweek
class Fixtures(models.Model):
    home_team = models.ForeignKey(Teams, models.CASCADE)
    away_team = models.ForeignKey(Teams, models.CASCADE)
    game_week = models.ForeignKey(configdata, models.CASCADE)

class configdata(models.Model):
    gameweek = models.PositiveIntegerField(default=0)
    season = models.PositiveIntegerField(default=2019)
    gw_deadline = models.DateTimeField(default=datetime.now)
    gw_active = models.BooleanField(default=False)
    gw_closed = models.BooleanField(default=False)

Forms.py

class score_entry(forms.ModelForm):
    class Meta:
        model = entry_data
        exclude = ()

Views.py


def get(self, request):
        gameweek = '1'
        fixtures = fix.objects.get(game_week__gameweek='1'))
        FixtureFormSet = inlineformset_factory(Fixtures, entry_data, form = score_entry, extra=0, can_delete=False)
        formset = FixtureFormSet(instance = fixtures)
        return render(request, self.template_name, {'formset': formset})

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...