私はdjango-floppyformsを使用しています。HTML テンプレートに値を渡すにはどうすればよいですか? (フィールドの初期化と単純な印刷の両方)。以下のコードは、設定を説明しています。
models.py:
class ContactMessage(models.Model):
msg_sender = models.ForeignKey(User, related_name="sent_messages")
msg_receiver = models.ForeignKey(User, related_name="received_messages")
listing = models.ForeignKey(Listing)
msg_title = models.CharField(max_length=200)
msg_body = models.TextField()
urls.py:
url(r'^listing/(?P<listing_id>\d+)/reply/$', views.ReplyListingView.as_view(), name='reply_listing'),
ビュー.py:
class ReplyListingView(CreateView):
model = ContactMessage
form_class = CreateContactMessageForm
フォーム.py:
class CreateContactMessageForm(forms.ModelForm):
class Meta:
model = ContactMessage
exclude = ['msg_sender',
'msg_receiver',
'listing',
]
widgets = {
'msg_title': forms.TextInput({"value": ????}),
'msg_body': forms.Textarea,
}
contactmessage_form.html:
{% extends 'base.html' %}
{% block content %}
<div class="row">
<div class="col-md-6">
<p>USER: {{request.user}}
SENDER: {{ form.sender }}
RECEIVER: {{ form.receiver }}
LISTING: {{ form.listing }}
</p>
<form method="post">
{% csrf_token %}
{{form}}
<input class="btn btn-success" type="submit" value="Send" />
<button type="button" class="btn btn-default" onClick="window.history.back();">
Cancel
</button>
</form>
</div>
</div>
{% endblock %}
そう:
特定のコンテキストで、リスト、送信者、および受信者を知っているとします (背景説明: URL には、listing_id が含まれているため、リストのタイトルと所有者がわかります。さらに、送信者は現在ログインしているユーザーである必要があります)。
ここで、ReplyListingView を表示し、これら 3 つの値をそれに渡し、CreateContactMessageForm を次のように表示します。
msg_title ウィジェットには、指定されたリストの「タイトル」フィールドの値が事前に入力されています (つまり、上記のコードの「????」部分の代わりに)。
<p>USER:...</p>
html (パーツ)の送信者、受信者、およびリスト フィールドの値にアクセスできます。
どうやってやるの?
質問が十分に明確であることを願っています。
ありがとう :)