from django import forms class AnswersForm(forms.Form): def __init__(self, *args, **kwargs): questions = kwargs.pop('questions', []) super().__init__(*args, **kwargs) for q in questions: if q.question_type == 'TEXT_AUTO': self.fields[f'answer_{q.id}'] = forms.CharField( label='Ответ:', required=False, widget=forms.Textarea(attrs={ 'class': 'w-full px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500', 'rows': 3, 'placeholder': 'Введите ваш ответ здесь...' }) ) elif q.question_type == 'TABLE_AUTO': rows = getattr(q, 'table_rows', 2) or 2 for i in range(1, rows + 1): for j in range(1, 3): self.fields[f'answer_{q.id}_r{i}_c{j}'] = forms.CharField( required=False, widget=forms.TextInput(attrs={ 'class': 'w-full px-2 py-1 border rounded focus:outline-none focus:ring-1 focus:ring-blue-500', }) ) else: self.fields[f'file_{q.id}'] = forms.FileField( label='Прикрепить файл:', required=False, widget=forms.ClearableFileInput(attrs={ 'class': 'block w-full text-sm text-gray-500 file:mr-4 file:py-2 file:px-4 file:rounded-full file:border-0 file:text-sm file:font-semibold file:bg-blue-50 file:text-blue-700 hover:file:bg-blue-100' }) ) from django.contrib.auth import get_user_model from django.contrib.auth.forms import UserCreationForm User = get_user_model() class StudentRegistrationForm(UserCreationForm): class Meta(UserCreationForm.Meta): model = User fields = ('username', 'first_name') def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) for field in self.fields.values(): field.widget.attrs.update({ 'class': 'w-full px-4 py-3 rounded-xl border border-gray-300 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none transition shadow-sm text-gray-800' })