简体   繁体   English

用于auth_user的django UpdateView

[英]django UpdateView for auth_user

I created my own get_object method to initialize an update-form with data from self.request.user . 我创建了自己的get_object方法来使用self.request.user数据初始化更新表单。

The following code gives me all fields of auth_user instead of just username and email . 以下代码为我提供了auth_user所有字段,而不仅仅是usernameemail

What am I doing wrong? 我究竟做错了什么?

class UserUpdateView(UpdateView):
  model = User
  fields = ['username', 'email']

  def get_object(self):
     return get_object_or_404(self.model, pk=self.request.user.id)

Using the fields attribute isn't supported in Django < v1.6 . Django <v1.6不支持使用fields属性。 Instead, provide a custom ModelForm: 相反,提供自定义ModelForm:

# forms.py
from django.forms import ModelForm


class UserUpdateForm(ModelForm):
    class Meta:
        model = User
        fields = ['username', 'email']


# views.py
class UserUpdateView(UpdateView):
    model = User
    form_class = UserUpdateForm

    # Parameters should match your superclass's parameters or have *args and **kwargs
    def get_object(self, queryset=None):
        return get_object_or_404(self.model, pk=self.request.user.pk)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM