Тема: Чи OK так робити?
Тож бувають такі моменти в мене з django, коли треба переробити форму під себе. Напр в є django contrib форма зміни паролю
from django.contrib.auth.forms import PasswordChangeForm
І мені треба було видалити всі labels, а натомість відобразити їх в placeholder`s. Я унаслідував цей клас і перевизначив метод __init__:
class CustomPasswordChangeForm(PasswordChangeForm):
def __init__(self, *args, **kwargs):
super(CustomPasswordChangeForm, self).__init__(*args, **kwargs)
self.fields['old_password'].widget.attrs = {
'placeholder': self.fields['old_password'].label + '*'
}
self.fields['new_password1'].widget.attrs = {
'placeholder': self.fields['new_password1'].label + '*'
}
self.fields['new_password2'].widget.attrs = {
'placeholder': 'Повторіть новий пароль'
}
self.fields['old_password'].label = ''
self.fields['new_password1'].label = ''
self.fields['new_password2'].label = ''
self.fields['new_password1'].help_text = ''
Або треба додати кастомне поле Номер телефону в fieldset Personal info для моделі користувача:
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
class UserAdmin(BaseUserAdmin):
def __init__(self, *args, **kwargs):
super(UserAdmin, self).__init__(*args, **kwargs)
self.fieldsets[1][1]['fields'] += ('phone',)
admin.site.register(User, UserAdmin)
Ну от і питання: чи не бидлокод це? Чи можна так робити і чи буде це зрозуміло для всіх девів, які будуть працювати наб кодом після мене? Чи може є якісь кращі практики?