1
私はdjangoの学習を始めましたが、フォームのレンダリング方法を理解できません。Djangoでは、フォームはブラウザ上でレンダリングされません
これは私が作成したform.pyです。
from django import forms
class TweetForm(forms.Form):
text = forms.CharField(widget = forms.Textarea(attrs = {'rows' : 1, 'cols' : 85}), max_length = 160)
country = forms.CharField(widget = forms.HiddenInput())
これはviews.pyのコードスニペットです。
from .forms import TweetForm
class Profile(View):
def get(self, request, username):
params = dict()
user = User.objects.get(username = username)
tweets = Tweet.objects.filter(user = user)
params["user"] = user
params["tweets"] = tweets
form = TweetForm
return render(request, 'profile.html', {'params' : params, 'form' : form})
これは、私が作成したフォームをレンダリングする必要があります。
{% extends "base.html" %}
{% block content %}
<div class="row clearfix">
<div class="col-md-12 column">
<form method="post" action="post/">
{% csrf_token %}
<div class="col-md-8 col-md-offset-2 fieldWrapper">
{{ form.text.errors }}
{{ form.text }}
</div>
{{ form.country.as_hidden }}
<div>
<input type="submit" value="post">
</div>
</form>
</div>
<h3> </h3>
<div class="col-md-12 column">
{% for tweet in tweets %}
<div class="well">
<span>{{ tweet.text }}</span>
</div>
{% endfor %}
</div>
</div>
{% endblock %}
コマンド(サーバー実行)を発行すると、ブラウザは例外なくフォームを表示しません。 views.pyファイルに問題があると思いますが、見つけられません。 フォームパラメータをテンプレート(.htmlファイル)に送信し、結果にフォームをレンダリングするにはどうすればよいですか?
助けてくれてありがとう。私はparamsを変更しましたが、何も起こりませんでした。テンプレート(profile.html)では、どのようにパラメータを使用できますか?それは正しいですか?{{form.text}} **。 –
はい、そうです。フォームが定義されているビューで変更する必要があります。 'form = TweetForm()'は、フォームをインスタンス化します。 – zaidfazil
ありがとうございます。フォームが現れました。しかし、CSSは私が意図したものではありません。 –