@Gambetto

Как передать значение из шаблона в модель через форму?

Модели: пользователь (User model) и его комментарии.
class Comment(models.Model):
    name = models.ForeignKey(User, related_name='comments')
    body = models.TextField()

Форма комментария:
class CommentForm(forms.ModelForm):
    class Meta:
        model = Comment
        fields = ('body',)

В шаблоне доступна переменная
{{ request.user.username }}
Если писать в шаблоне
<form>
	<input type="hidden" name="name" value="{{ request.user.username }}">
        {{ comment_form.as_p }}
...
</form>

, то во view cleaned_data будет иметь только значение поля, заданного в форме комментария – body. На name будет ошибка KeyError.

Подскажите, как проинициализировать поле name комментария значением, доступным в шаблоне? Как форму комментария изменить?
  • Вопрос задан
  • 402 просмотра
Решения вопроса 1
clojurerabbit
@clojurerabbit
Это, конечно, не совсем то, чего вы спрашиваете, но я бы не стал сохранять имя в hidden, а просто сделал вот так:
...
if form.is_valid():
    comment = form.save(commit=False)
    comment.user = request.user
    comment.save()
...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы