0

ユーザーがオブジェクトの説明を編集できるフォームがあります。フォームの非表示の入力値にオブジェクト ID を入力するにはどうすればよいですか。これまでに行ったことは、forms.py に hidden_​​field というフィールドを追加したことですが、 hidden_​​field のみが表示されます。hidden_​​field をオブジェクト ID にリンクするにはどうすればよいですか

models.py

class School(models.Model):


    user = models.ForeignKey(User)
    name = models.CharField(max_length=55)
    description = models.CharField(max_length=300,blank=True)

フォーム.py

class SchoolDescriptionForm(forms.ModelForm):
        description = forms.CharField(widget=forms.Textarea,max_length=300)
        hidden_field = forms.CharField(widget=forms.HiddenInput())
    class Meta:
        model = School 
        fields = ()

ビュー.py

def SchoolEditor(request,school_id):


    school = School.objects.get(pk=school_id,user=request.user)
    form = SchoolDescriptionForm(instance=school) # I want to populate the object ID 

    return render(request,'schooleditor.html',{'school':school,'form':form})

テンプレート

 <form method="POST" enctype="multipart/form-data">
     {% csrf_token %}
    {{ form.as_p }}

    <input type = "submit" value= "save" />
{{ form.field.as_hidden }}
 </form>
4

2 に答える 2

1

オブジェクト ID を次の形式で渡すだけinitialです。

def SchoolEditor(request,school_id):
    initial = {}
    school = School.objects.get(pk=school_id,user=request.user)
    if school:
        initial.update({'hidden_field': school.id})
    form = SchoolDescriptionForm(instance=school, initial=initial) # I want to populate the object ID 

    return render(request,'schooleditor.html',{'school':school,'form':form})
于 2013-05-21T12:29:01.927 に答える