私は方法を見つけました。まず、必要な方法でレンダリングするカスタムウィジェットを作成する必要があります。私の場合は、元のウィジェットは、(選択)コンボだったので、私はこのウィジェットを見つけました:
:あなたはget_initialメソッドを上書きCREATEVIEWで、フィールドのデフォルト値を設定する必要が
class ReadOnlySelect(Select):
def render(self, name, value, attrs=None, choices=()):
final_attrs = self.build_attrs(attrs, name=name)
display = "None"
for option_value, option_label in chain(self.choices, choices):
if utf8_encode(option_value) == utf8_encode(value):
display = option_label
output = format_html('<p>%s</p><input type="hidden" value="%s" %s> ' % (display, value, flatatt(final_attrs)))
return mark_safe(output)
第二ステップ
def get_initial(self):
category = None
if self.request.method == "GET" :
# this method sets the initial value for the fields
try:
category = Category.objects.get(pk=self.request.GET.get('category_id'))
except Category.DoesNotExist:
raise Http404(_(u"Destination not found."))
return {'category': category}
あなたは、ウィジェットが現場で使用されるように設定された第3ステップ:Djangoはフォームをロードするとき
class ItemForm(forms.ModelForm):
class Meta:
model = Item
fields = ['category','title' ]
widgets = {
'category': ReadOnlySelect(),
}
に続いてフィールドが非表示の入力が続いたテキストとして表示されます。
あなたの質問は – marcusshep
であるかは不明です。以下の点を明確にしてください。 "ユーザーがオプションを選択しました。"これはあなたが読み取り専用にしようとしているオプションですか?また、この引用されたテキストは正確な "..そして次のフォームが動的に読み込まれる"か、代わりに "...そして次のフォームELEMENTが動的に読み込まれる"かどうか野生の推測をしましょう。 - ユーザーがモーダルボックスで行った最初の選択に基づいて動的にロードされる "フォーム要素値"を意味しますか?本当に情報テキスト出力として表示する必要がありますか? –
@BobbyC私は達成したいことを示すイメージで質問を更新しました。 –