私はdjangoを使用してWebを作成しようとしています.フォームはユーザーにプロンプトが表示され、フォームのいくつかの値を入力して送信できます. 次に、python プログラムが残りを入力し、ユーザーが入力したフォームとサーバーが入力したフィールドを表示します。モデルとフォームを完全に一致させたいので、modelForms を使用しています。
いくつかの理由で、次のコードを使用するようになりましたが、フォームを送信した後、フィールドが CharFields として表示されなくなり、「html ラベル」に似たものとして表示され、編集できない理由がわかりません。もう。
このコードは私の非常に単純化されたバージョンで、ユーザーが入力するフィールドは 1 つだけです。
ビュー.py:
def manage_printers(request):
p = PrinterForm(request.POST or None)
if request.method == 'POST':
if p.is_valid():
f = p.save(commit=False)
f.name = request.POST.get('name')
f.save()
return render_to_response('web.html', {'printer': f})
else:
return HttpResponse("form not valid")
return render_to_response('web.html', {'printer': p}, )
models.py:
class Printer(models.Model):
name = models.CharField(max_length=200, default=' ')
def __unicode__(self):
return self.name
class PrinterForm(ModelForm):
class Meta:
model = Printer
web.html:
<form action="/useriface/" method="post">
<p>Name: {{ printer.name }}</p>
</form>