У меня расширенная пользовательская модель в Django 2, и я хочу создать для нее форму обновления.
Я использовал отношение один к одному между django.contrib.auth.models.User
и моей пользовательской моделью.
Расширенная модель пользователя:
class Employer(models.Model):
employer_id = models.AutoField(primary_key=True)
address = models.CharField(max_length=400)
user = models.OneToOneField(User, on_delete=models.CASCADE, null=True, blank=True)
profile_pic = models.ImageField(upload_to='uploads/profile/%Y/%m/%d/', blank=True)
@receiver(post_save, sender=User)
def save_user_employer(sender, instance, created, **kwargs):
if not created:
try:
instance.employer.save()
except Employer.DoesNotExist:
pass
и мой класс формы:
class EmployerForm(UserCreationForm):
address = forms.CharField(max_length=400)
profile_pic = forms.ImageField(required=False)
class Meta:
model = User
fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2', 'profile_pic')
И, на мой взгляд, класс:
class EditEmployerView(UpdateView):
template_name = 'registration/employer.html'
form_class = EmployerForm()
success_url = 'dashboard'
def get_object(self, query_set=None):
return self.request.user
В шаблоне я отображаю форму автоматически, используя widget-tweaks
:
{% for field in form.visible_fields %}
{% render_field field class="form-control" placeholder=field.label %}
{% endfor%}
Проблема заключается в том, что в форме шаблона только поля пользователя заполнены данными, а поля работодателя пусты.Как сделать так, чтобы форма заполнялась существующими данными класса User и Employer?