Я расширил пользовательскую модель Django некоторыми дополнительными полями
models.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
telephone = models.CharField(max_length=15, blank=True)
email_address = models.CharField(max_length=30, blank=True)
date_of_birth = models.DateField(null=True, blank=True)
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
instance.profile.save()
forms.py
class ProfileForm(forms.ModelForm):
class Meta:
model = Profile
fields = ('telephone', 'email_address', 'date_of_birth')
widgets = {
'date_of_birth': forms.DateInput(attrs={'type': 'date'}),
}
views.py
def response_form(request):
if request.method == 'POST':
user_form = UserForm(request.POST, instance=request.user)
profile_form = ProfileForm(request.POST, instance=request.user.profile)
if user_form.is_valid() and profile_form.is_valid():
profile, created = Profile.objects.get_or_create(user=request.user)
user_form.save()
profile_form.save()
messages.success(request, ('Your profile was successfully updated!'))
date_of_birth = profile_form.cleaned_data['date_of_birth']
user = profile_form.cleaned_data['user']
context = {
'user': user,
'date_of_birth': date_of_birth
}
template = loader.get_template('thank_you.html')
return HttpResponse(template.render(context, request))
else:
messages.error(request, ('Please correct the error below.'))
else:
user_form = UserForm()
profile_form = ProfileForm()
return render(request, 'response_form.html', {'user_form': user_form, 'profile_form': profile_form})
Когда шаблон загружен, он помещает пользовательские поля над полями профиля.
![enter image description here](https://i.stack.imgur.com/f5FCs.png)
Как разместить раскрывающийся список Пользователь над полем Имя ?