Django错误:无法解析关键字' user'进入田野。选择是

时间:2017-03-21 18:06:56

标签: python django

我正在尝试编辑模型UserProfile的数据。 这是相同的代码。

form.py

class UserprofileForm(forms.ModelForm):
    class Meta:
        model = UserProfile
        fields = ['profile_photo', 'gender', 'contact_number', 'age', 'address']

view.py

def edit_user(request):
    if not request.user.is_authenticated():
        return render(request, 'service/login.html')
    else:
        userdata = UserProfile.objects.all().filter(user = request.user)
        userd = UserProfile.objects.get(user2 = request.user.pk)
        form = UserprofileForm(request.POST or None, instance = user2)
        if form.is_valid():
            user1 = form.save(commit = False)
            user1.user = request.user
            user1.save()
            return render(request,'service/user.html', {'userdata' : userdata,})

1 个答案:

答案 0 :(得分:3)

有问题的一行是 userdata = UserProfile.objects.all().filter(user = request.user)filter中,您可以在User模型中提供要搜索的字段。您的模型中没有User.user字段,这就是为什么它会给您一个错误。

您还会收到userd = UserProfile.objects.get(user2 = request.user.pk)上的错误,因为user2不是User模型中的字段。

以下是有关filter方法的更多信息: https://docs.djangoproject.com/en/1.10/topics/db/queries/#retrieving-specific-objects-with-filters

通过其唯一键获取特定用户的正确方法(以及我认为您方案中最佳解决方案)是UserProfile.objects.get(pk = request.user.pk