【问题标题】:How to render data selected choice on templates with bootstrap in DJANGO如何在 DJANGO 中使用引导程序在模板上呈现数据选择的选项
【发布时间】:2022-01-23 08:51:35
【问题描述】:

我在我的模型中使用字段 ('jenis_kelamin') 创建性别 男性('Pria')和女性('Wanita')。

但是,当我发布数据时,数据不会呈现。

显示在我的模板上。 DISPLAY ON MY TEMPLATE

显示在我的管理页面上。 DISPLAY ON MY ADMIN PAGE

如何解决这个问题? 这是我的:

models.py

class UserProfil(models.Model):
JENIS_KELAMIN_CHOICE = (
    ('Pria', 'Pria'),
    ('Wanita', 'Wanita' ),
)

#Profil
user                    = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE,)
gelar_depan             = models.CharField(max_length=11, blank=True, default="")
gelar_belakang          = models.CharField(max_length=20, blank=True, default="")
nik                     = models.CharField(max_length=11, blank=True, unique=True, default="")
nidn                    = models.CharField(max_length=11, blank=True, unique=True, default="")
email_alternatif        = models.EmailField(_('email address'), blank=True, default="")
jenis_kelamin           = models.CharField(max_length=6, blank=True, default="", choices =JENIS_KELAMIN_CHOICE)
tempat_lahir            = models.CharField(max_length=30, blank=True, unique=True, default="")
tanggal_lahir           = models.DateField(null=True, blank=True)
nomor_handphone         = models.CharField(max_length=13, blank=True)
alamat                  = models.CharField(max_length=255, blank=True, default="")

forms.py

class UserProfilUpdateForm(ModelForm):
class Meta:
    model           = UserProfil
    exclude         = ['user']

    widgets = {
        'gelar_depan'       : forms.TextInput({'class' : 'form-control form-control-user', 'id' : 'gelarDepan', 'placeholder' : 'Gelar Depan'}),
        'gelar_belakang'    : forms.TextInput({'class' : 'form-control form-control-user', 'id' : 'gelarBelakang', 'placeholder' : 'Gelar Belakang'}),
        'nidn'              : forms.TextInput({'class' : 'form-control form-control-user', 'id' : 'nidn', 'placeholder' : 'Nomor Induk Dosen Nasional'}),
        'nik'               : forms.TextInput({'class' : 'form-control form-control-user', 'id' : 'nik', 'placeholder' : 'Nomor Induk Karyawan'}),
        'tempat_lahir'      : forms.TextInput({'class' : 'form-control form-control-user', 'id' : 'gelarBelakang', 'placeholder' : 'Tempat Lahir'}),
        'tanggal_lahir'     : forms.TextInput({'class' : 'form-control form-control-user', 'id' : 'gelarBelakang', 'placeholder' : 'Tanggal Lahir', 'type' : 'date'}),
        'nomor_handphone'   : forms.TextInput({'class' : 'form-control form-control-user', 'id' : 'nik', 'placeholder' : 'No Handphone'}),
        'email_alternatif'  : forms.EmailInput({'class' : 'form-control form-control-user', 'id' : 'emailAlternatif', 'placeholder' : 'Email Alternatif'}),
        'alamat'            : forms.TextInput({'class' : 'form-control form-control-user', 'id' : 'alamat', 'placeholder' : 'Alamat'}),
        'jenis_kelamin'     : forms.Select({'class' : 'form-control form-control-user', 'id' : 'jenisKelamin',}),
    }

【问题讨论】:

  • 其他字段渲染正确?
  • 您是否尝试为jenis_kelamin 添加默认值?例如:jenis_kelamin = models.CharField(max_length=6, blank=True, default="Pria", choices =JENIS_KELAMIN_CHOICE)

标签: django django-models django-forms django-templates


【解决方案1】:

我认为您的表单不保存的原因是因为您省略了 UserProfilUpdateForm 中的表单而不是这个 (forms.ModelForm) 您这样做 (ModelForm) 不起作用而且您没有添加如果没有字段,您的字段到 Meta 类也不起作用

class UserProfilUpdateForm(forms.ModelForm):
      class Meta:
            model = UserProfil
            fields = ['jenis_kelamin','gelar_depan',
            'gelar_belakang','nidn','nik','tempat_lahir',
             'tanggal_lahir','nomor_handphone','email_alternatif','alamat' ]
          

            widgets = {
        'gelar_depan'       : forms.TextInput({'class' : 'form-control form-control-user', 'id' : 'gelarDepan', 'placeholder' : 'Gelar Depan'}),
        'gelar_belakang'    : forms.TextInput({'class' : 'form-control form-control-user', 'id' : 'gelarBelakang', 'placeholder' : 'Gelar Belakang'}),
        'nidn'              : forms.TextInput({'class' : 'form-control form-control-user', 'id' : 'nidn', 'placeholder' : 'Nomor Induk Dosen Nasional'}),
        'nik'               : forms.TextInput({'class' : 'form-control form-control-user', 'id' : 'nik', 'placeholder' : 'Nomor Induk Karyawan'}),
        'tempat_lahir'      : forms.TextInput({'class' : 'form-control form-control-user', 'id' : 'gelarBelakang', 'placeholder' : 'Tempat Lahir'}),
        'tanggal_lahir'     : forms.TextInput({'class' : 'form-control form-control-user', 'id' : 'gelarBelakang', 'placeholder' : 'Tanggal Lahir', 'type' : 'date'}),
        'nomor_handphone'   : forms.TextInput({'class' : 'form-control form-control-user', 'id' : 'nik', 'placeholder' : 'No Handphone'}),
        'email_alternatif'  : forms.EmailInput({'class' : 'form-control form-control-user', 'id' : 'emailAlternatif', 'placeholder' : 'Email Alternatif'}),
        'alamat'            : forms.TextInput({'class' : 'form-control form-control-user', 'id' : 'alamat', 'placeholder' : 'Alamat'}),
        'jenis_kelamin'     : forms.Select({'class' : 'form-control form-control-user', 'id' : 'jenisKelamin',}),
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 2015-03-15
    • 2017-12-16
    • 2017-03-03
    • 2017-11-20
    相关资源
    最近更新 更多