17 สิงหาคม, 2560

Override default Django forms attribute

งานที่ใช้อยู่ปัจจุบัน คือ สร้าง Form สำหรับ Register โดยใช้ ModelForm ที่ inherit มาจาก class อื่น 

ปัญหาคือ เมื่อ render html form ออกมา พวกค่าต่างๆ เช่น help_text จะใช้จาก default ที่ตั้งมาจาก class แม่ และแท็ค input จะไม่มี class กำหนดมา ซึ่งอยากใช้ form-control ของ bootstrap 

ลองไปค้นๆ ดู ก็เจอคนทำ เลยเอามาบล็อกเก็บไว้เสียหน่อย




class UserRegistrationForm(RegistrationFormUniqueEmail):
    def __init__(self, *args, **kwargs):
        super(UserRegistrationForm, self).__init__(*args, **kwargs)
        self.fields['password1'].help_text = "My new help_text"
        self.field['username'].widget.attrs.update({'class': 'form-control'})


ไม่มีความคิดเห็น: