Django: форма обновления для расширенной пользовательской модели - PullRequest
0 голосов
/ 28 апреля 2019

У меня расширенная пользовательская модель в 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...