Расширение на формы Джанго - PullRequest
0 голосов
/ 22 мая 2011

У меня есть модель, в которой есть три обязательных поля: user, network и position. position вытягивается request.POST, а два других будут поставляться за его пределы. Вот что у меня сейчас:

form = StartForm(request.POST)
form.save()

Очевидно, что эта форма не проверяется, потому что я не предоставил экземпляры user и network. Как добавить эту дополнительную информацию в форму? Концептуально я ищу что-то вроде этого:

form = StartForm(request.POST + user_id=10, network_id=20)
form.save()

Ответы [ 2 ]

0 голосов
/ 26 мая 2011

Есть два варианта:

  1. user и network поля не могут быть получены из request.POST.Например, если user должен быть текущим вошедшим в систему пользователем, который происходит от request.user.

    В этом случае вы можете сделать:

    class StartForm(form.models.ModelForm):
    
        class Meta:
            model = MyModel
            fields = ["position", ] # You don't include user and network to the form
    
    form = StartForm(request.POST, instance=MyModel(user=user, network=network))
    

    Таким образом, вы инициализируете форму с модельюс предварительно заполненными полями.

  2. user и поля network допускаются из request.POST.Затем вы делаете:

    form = StartForm(request.POST, initial={"user": user, "network": network})
    

    Обратите внимание, что в этом случае поля user и network могут быть переопределены значениями из request.POST.

0 голосов
/ 22 мая 2011

Разве вы не можете сделать что-то похожее на: form = StartForm(position = request.POST, user_id = 10, network_id = 20)?Возможно, вам придется распечатать значение для request.POST, так как я думаю, что это на самом деле список.Так что просто выясните, какая позиция в запросе.POST

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