0

私は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>
4

1 に答える 1