gpt4 book ai didi

python - Django 从数据库中获取数据的表单

转载 作者:行者123 更新时间:2023-11-30 22:37:17 25 4
gpt4 key购买 nike

我正在尝试创建一个允许用户编辑其个人资料数据的表单。因此,我希望当用户编辑表单时显示数据库中的最新数据。这是我到目前为止所拥有的:

# models.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
location = models.CharField(max_length=30, blank=True)
birthdate = models.DateField(null=True, blank=True)

def __str__(self):
return self.user.username

# forms.py
class EditProfileForm(forms.ModelForm):
class Meta:
model = Profile
fields = ['location', 'birthdate']

# views.py
class EditProfileFormView(View):
form_class = EditProfileForm
template_name = 'forums/edit-profile.html'

def get(self, request, username):

try:
user = User.objects.get(username=username)
except User.DoesNotExist:
raise Http404('The User "' + username + '" could not be found.')

if (not request.user.is_authenticated):
return HttpResponseForbidden()
elif (user.id is not request.user.id):
return HttpResponseForbidden()

form = self.form_class(None)
return render(request, self.template_name, {'form': form})

将表单设置为 form_class(None) 会给我一个空表单,但是将 user.profile 放在同一位置会给我一个错误“Profile”对象没有属性“get”

最佳答案

尝试使用实例填充表单

form = self.form_class(instance=user.profile)

注意:使用标准 UpdateView 可能会更容易

关于python - Django 从数据库中获取数据的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43924960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com