Django passing object ID in hiddeninput by populating -
i have form allows user edit object description. how can populate object id in form's hidden input value. done far added field called hidden_field in forms.py show hidden_field . how can link hidden_field object 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)
forms.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 = ()
views.py
def schooleditor(request,school_id): school = school.objects.get(pk=school_id,user=request.user) form = schooldescriptionform(instance=school) # want populate object id return render(request,'schooleditor.html',{'school':school,'form':form})
template
<form method="post" enctype="multipart/form-data"> {% csrf_token %} {{ form.as_p }} <input type = "submit" value= "save" /> {{ form.field.as_hidden }} </form>
change hidden_field id , tell django include school's id.
class schooldescriptionform(forms.modelform): description = forms.charfield(widget=forms.textarea,max_length=300) id = forms.charfield(widget=forms.hiddeninput()) class meta: model = school fields = ('id', 'name', 'description')
edit:
if want conserve hidden_field name should add custom init method:
def __init__(self, *args, **kwargs): super(schooldescriptionform, self).__init__(*args, **kwargs) if self.instance: self.fields['hidden_field'].initial = instance.id
Comments
Post a Comment