首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django forms.py小部件不能在模板中呈现(UpdateView)

django forms.py小部件不能在模板中呈现(UpdateView)
EN

Stack Overflow用户
提问于 2022-01-05 01:44:28
回答 1查看 93关注 0票数 0

我遇到了一个问题,forms.py中的小部件不能在模板中呈现。我想在我的应用程序中创建编辑表单,我尝试了在forms.py中使用的小部件,但是这些小部件不能在模板中呈现。有什么解决办法吗?

在html中的表单呈现如下(类、占位符等):图像格式编辑

forms.py

代码语言:javascript
复制
class UserUsulanUpdatePenelitianForm(ModelForm):
class Meta:
    model           = UserUsulan
    exclude         = ['status_usulan' ,'jumlah_dana_disetujui', 'keterangan_operator', 'com_reviewer_1', 'com_reviewer_2' ]
    widget = {
        'anggota'                   : Select2MultipleWidget({'class' : 'form-control select2-multi', 'multiple' : 'multiple', 'name' : 'tags' }),
        'tmt_awal'                  : forms.TextInput({'class' : 'form-control',  'placeholder' : 'TMT Awal', 'type' : 'date'}),
        'tmt_akhir'                 : forms.TextInput({'class' : 'form-control',  'placeholder' : 'TMT Akhir', 'type' : 'date'}),
        'judul_penelitian'          : forms.Textarea({'class' : 'form-control', 'placeholder' : 'Judul Penelitian', 'rows':3, 'cols':20}),
    }

views.py

代码语言:javascript
复制
class UserUsulanPenelitianUpdateView(LoginRequiredMixin, UpdateView):
template_name       = 'dashboard/usulan-penelitian-edit.html'
form_class          = UserUsulanUpdatePenelitianForm
queryset            = UserUsulan.objects.all()
context_object_name = 'listUsulanPenelitian'

def form_valid(self, form):
    messages.success(self.request, 'Usulan Penelitian Telah Diedit!')
    return super().form_valid(form)

def get_success_url(self):
    return reverse('dashboard:usulan-penelitian')

usulan-penelitian-edit.html

代码语言:javascript
复制
<form method="post">
                {% csrf_token%}
                {{form.errors}}
                <div class="inputbox mt-3"> {{form.ketua}} <span>Ketua Penelitian</span> </div>
                <div class="row">
                    <div class="col-md-6">
                        <div class="inputbox mt-3 mr-2"> {{form.anggota}} <i class="fa fa-users"></i> <span>Anggota</span> </div>
                    </div>
                    <div class="col-md-6">
                        <div class="d-flex flex-row">
                            <div class="inputbox mt-3 mr-2"> {{form.tmt_awal}} <span>TMT Awal</span> </div>
                            <div class="inputbox mt-3 mr-2"> {{form.tmt_akhir}} <span>TMT Akhir</span> </div>
                        </div>
                    </div>
                </div>
                <div class="mt-4 mb-4">
                    <h6 class="text-uppercase">Detail Penelitian</h6>
                    <div class="row mt-3">
                      <div class="inputbox mt-3"> {{form.judul_penelitian}} <span>Judul Penelitian</span> </div>
                        <div class="col-md-4">
                            <div class="inputbox mt-3 mr-2"> {{form.tahun}} <span>Tahun</span> </div>
                        </div>
                        <div class="col-md-4">
                            <div class="inputbox mt-3 mr-2"> {{form.jenis_penelitian}} <span>Jenis</span> </div>
                        </div>
                        <div class="col-md-4">
                            <div class="inputbox mt-3 mr-2"> {{form.bidang_penelitian}} <span>Bidang</span> </div>
                        </div>
                    </div>
                    <div class="row mt-2">
                        <div class="col-md-6">
                            <div class="inputbox mt-3 mr-2"> {{form.skema_penelitian}} <span>Skema</span> </div>
                        </div>
                        <div class="col-md-6">
                            <div class="inputbox mt-3 mr-2"> {{form.target_luaran}} <span>Target</span> </div>
                        </div>
                    </div>
                    <div class="row mt-2">
                        <div class="col-md-12">
                            <div class="inputbox mt-3 mr-2"> {{form.tujuan_sosial_ekonomi}} <span>Tujuan Sosial Ekonomi</span> </div>
                        </div>
                    </div>
                </div>
                <div class="mt-4 mb-4">
                    <h6 class="text-uppercase">Dana Penelitian</h6>
                    <div class="row mt-3">
                        <div class="col-md-6">
                            <div class="inputbox mt-3 mr-2"> {{form.jumlah_dana_usulan}} <span>Dana Usulan</span> </div>
                        </div>
                    </div>
                </div>
                <input type="submit" name="simpan" id="simpan" class="btn btn-primary btn-user btn-block" value="Simpan"/>
            </form>
EN

回答 1

Stack Overflow用户

发布于 2022-01-05 02:14:52

由于在写代码部件中输入错误,小部件无法呈现。正确的代码是小部件而不是小部件

先于

代码语言:javascript
复制
widget = {
    'anggota'                   : Select2MultipleWidget({'class' : 'form-control select2-multi', 'multiple' : 'multiple', 'name' : 'tags' }),
    'tmt_awal'                  : forms.TextInput({'class' : 'form-control',  'placeholder' : 'TMT Awal', 'type' : 'date'}),
    'tmt_akhir'                 : forms.TextInput({'class' : 'form-control',  'placeholder' : 'TMT Akhir', 'type' : 'date'}),
    'judul_penelitian'          : forms.Textarea({'class' : 'form-control', 'placeholder' : 'Judul Penelitian', 'rows':3, 'cols':20}),
}

代码语言:javascript
复制
widgets = {
    'anggota'                   : Select2MultipleWidget({'class' : 'form-control select2-multi', 'multiple' : 'multiple', 'name' : 'tags' }),
    'tmt_awal'                  : forms.TextInput({'class' : 'form-control',  'placeholder' : 'TMT Awal', 'type' : 'date'}),
    'tmt_akhir'                 : forms.TextInput({'class' : 'form-control',  'placeholder' : 'TMT Akhir', 'type' : 'date'}),
    'judul_penelitian'          : forms.Textarea({'class' : 'form-control', 'placeholder' : 'Judul Penelitian', 'rows':3, 'cols':20}),
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70586945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档