0

こんにちは、オブジェクトの ID を受け取り、元の値をすべてロードして編集/更新を有効にする編集ページを実装しようとしています。例えば

テキストタイプの場合、私は使用します

<label>Field1:</label>
     <input type="text" id="id_field1" value='{{ objectInstance.filed1}}' name="field1"/>

テキスタイル用

<label>Field2:</label>
    <textarea id="id_field2" name="field2">
        {{ objectInstance.field2}}  

どちらも、インスタンスの元のデータをロードして編集できるようにする際に問題なく機能しました。しかし、日付フィールドの場合、ロード方法がわかりません..次のようなものを試しています

<label>Deadline:</label>
            <input type="date" id="id_deadline" name="deadline" value={{objectInstance.deadline}}>

(締め切りは、2013-6-4 などの日付データ型です)

誰でもこの問題を解決できますか? どうもありがとう。

4

1 に答える 1

0

ジェネリック クラス ベースのビューを使用して、UpdateViewこのプロセスを簡素化できます。同様の質問が以前に回答されました。

これを修正するもう 1 つの方法は、 を使用ModelFormし、インスタンスを事前にロードすることです。これは実際にUpdateView行うことですが、クラスベースのビューを使用したくない場合は、次の方法があります。

あなたのforms.py

from django import forms
from someapp.models import SomeModel

class SomeModelForm(forms.ModelForm):
    class Meta:
        model = SomeModel

あなたのviews.py

def someview(request):
    obj = SomeModel.objects.get(pk=1)  # Fetch the object to be edited
    form = SomeModelForm(instance=obj) # Load the form with the object's data
    return render(request, 'edit.html', {'form': form})

edit.html

<form method="POST">
{% csrf_token $}
{{ form }}
<input type="submit">
</form>

これにより、フォームが自動的に作成され、モデルからのデータが入力されます。ビュー内のレコードを更新するロジックを記述する必要があります。

于 2013-06-04T04:28:23.670 に答える