как я могу добавить класс css в поле формы django, которое создается с помощью RelatedFieldWidgetWrapper - PullRequest
0 голосов
/ 10 июля 2020

как применить классы css к полю опекуна. В следующем коде я использовал опцию виджетов в классе Meta, но это не меняет никакого стиля. это forms.py

class StudentProfileForm(ProfileForm):
    guardian = Student._meta.get_field('guardian').formfield(
        widget=RelatedFieldWidgetWrapper(
            Student._meta.get_field('guardian').formfield().widget,
            Student._meta.get_field('guardian').remote_field,
            accounts_admin_site,
            can_add_related=True,
        )
    )
    class Meta:
        model = Student
        widgets = {'guardian' : forms.Select(attrs={'class':'selectpicker'})}
        exclude = ['user', 'guardian', 'salary', 'date_left', 'contact_number', 'status', 'reg_number', 'roll_number']

следующий код находится в create_student. html file

            <tr>
                <td><label for="guardian">Guardian:</label></td>
                <td>{{ std_profile_form.guardian }}</td>
            </tr>

далее sites.py

from django.contrib.admin.sites import AdminSite

accounts_admin_site = AdminSite(name='accounts_custom_admin')

ниже показано admin.py

from .sites import accounts_admin_site
class StudentModelAdmin(admin.ModelAdmin):
    form = StudentProfileForm
accounts_admin_site.register(Parent, admin.ModelAdmin)
accounts_admin_site.register(Student,StudentModelAdmin)

, а по следующей ссылке - изображение, вы можете увидеть поле-хранитель без стиля. Я хочу стилизовать это поле https://1drv.ms/u/s! AtYQzlRRDTuAhc4N7bwS0q24j11P5Q? e = 2aPZwr

1 Ответ

0 голосов
/ 10 июля 2020

Способ задания стиля для ввода в формах - это виджеты. вы можете попробовать это:

def __init__(self, *args, **kwargs):
    super(StudentProfileForm, self).__init__(*args, **kwargs)
    self.fields['guardian'].widget.attrs['class'] = 'selectpicker'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...