2017-08-16 39 views
1

如何在模板中設置whoimage的值?Django如何設置模板中隱藏輸入的值

class CommentForm(ModelForm): 
    who = forms.CharField(widget=forms.HiddenInput()) 
    image = forms.ImageField(widget=forms.HiddenInput()) 

    class Meta: 
     model = Comments 
     fields = ['who', 'image', 'content'] 

它不工作(原始文本):

<form method='POST' action=''> 
    {% csrf_token %} 
    {% render_field comment_form.content class="form-control form-control-sm" placeholder='Comment..' %} 
    {% render_field comment_form.who class="form-control form-control-sm" value='{{ request.user.profile.pk }}' %} 
    {% render_field comment_form.image class="form-control form-control-sm" value='{{ image.pk }}' %} 
    <input class="btn btn-primary btn-sm" type="submit" value="Add comment"> 
</form> 

views.py

class ProfileView(DetailView): 
    comment_form = CommentForm() 
    queryset = Profile.objects.all() 
    context_object_name = 'me' 
    template_name = 'profile.html' 

    def get_context_data(self, **kwargs): 
     context = super(ProfileView, self).get_context_data(**kwargs) 
     context['comment_form'] = self.comment_form 
     return context 
+0

你可以添加你的看法的問題? – wencakisa

回答

1

您需要設置窗體字段的the initial property,您先請」已經在你的視圖中實例化了這個表單。像這樣:

class ProfileView(DetailView): 
    comment_form = CommentForm() 
    queryset = Profile.objects.all() 
    context_object_name = 'me' 
    template_name = 'profile.html' 

    def get_context_data(self, **kwargs): 
     context = super(ProfileView, self).get_context_data(**kwargs) 
     context['comment_form'] = self.comment_form 
     # This sets the initial value for the field: 
     context['comment_form'].fields['who'].initial = self.request.user.profile.pk 
     return context 
0
<form method='POST' action=''> 
    {% csrf_token %} 
    {% render_field comment_form.content class="form-control form-control-sm" placeholder='Comment..' %} 
    {% render_field comment_form.who class="form-control form-control-sm" value='{{ omment_form.who }}' %} 
    {% render_field comment_form.image class="form-control form-control-sm" value='{{ comment_form.image }}' %} 
    <input class="btn btn-primary btn-sm" type="submit" value="Add comment"> 
</form> 
相關問題