Джанго админ.Изменить пользователя и оставить пароль без изменений - PullRequest
0 голосов
/ 21 января 2019

У меня есть пользовательская модель:

class RemoteUser(AbstractUser):

    class Meta:
        verbose_name= 'MyUser'
        verbose_name_plural = 'MyUsers'

    # Custom fields here...

Как мне настроить форму пользователя для редактирования информации о пользователе, скрывающей пароль?

class RemoteUserForm(UserCreationForm):
    # What do I put here?

Даже если я исключу password из полей, он будет давать мне KeyError 'password1'.

1 Ответ

0 голосов
/ 21 января 2019

Используйте ModelForm, это очень просто.Вы создаете класс формы для редактирования пользовательских объектов, в полях вы можете указать, что вы хотите редактировать.Используйте эту форму для сохранения входных данных и используйте контекст в шаблоне для завершения цикла.

Forms.py из django.contrib.auth.models import User

class EditUserForm(forms.ModelForm):
class Meta:
    model = User
    fields = {'username'}

Views.py

def update_userprofile(request, pk):
    user = User.objects.get(pk=pk)
    user_form = EditUserForm(instance=user)
    if request.user.id == user.id:
        if request.method == "POST":
            user_form = EditUserForm(request.POST, instance=user)
            if user_form.is_valid():
                created_user = user_form.save(commit=False)
                return redirect('someview') #wherever you want

        return render(request, "app_name/update_userprofile.html", {
            "noodle": pk,
            "noodle_form": user_form,}
    else:
        raise PermissionDenied

Update_userprofile.html

<form method="post">
    {% csrf_token %} {{ noodle_form.as_p }}
    <button type="submit">Submit</button>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...