简体   繁体   English

无法更改 Django 中的 BooleanField 值

[英]unable to change the BooleanField value in Django

models.py模型.py

class Profile(models.Model):
    user = models.OneToOneField(User,on_delete=models.CASCADE)
    # on_deleting user, profile will also be deleted
    image = models.ImageField(default="profilepic.jpg",upload_to="profile_pictures")
    dob = models.DateField(null=True)
    bio = models.TextField(null=True)
    anonymous = models.BooleanField(default=False)

    def __str__(self):
        return f'{self.user.username} Profile'

views.py视图.py

@login_required
def profile_edit(request):
    if request.method == 'POST':
        u_form = UserUpdateForm(request.POST, instance=request.user)
        p_form = ProfileForm(request.POST, request.FILES, instance=request.user.profile)
        if u_form.is_valid() and p_form.is_valid():
            u_form.save()
            p_form.save()
            messages.success(request, f'your account has been updated')
            return redirect('users:profile')
    else:
        u_form = UserUpdateForm(instance=request.user)
        p_form = ProfileForm()
    context = {
        'u_form' : u_form,
        'p_form' : p_form
    }
    return render(request, 'users/profile_edit.html',context)

in users/profile_edit.html在用户/profile_edit.html

        <div class="form-group">
          <label class="radio-inline"><input type="radio" name="anonymous"  value='True'>Anonymous</label>
          <label class="ml-5 radio-inline"><input type="radio" name="anonymous" value='False' checked>Non-Anonymous</label>
        </div>

forms.py表格.py

from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from .models import Profile

class UserUpdateForm(forms.ModelForm):
    class Meta:
        model = User
        fields = ['first_name','last_name']


class ProfileForm(forms.ModelForm):
    class Meta:
        model = Profile
        fields = ['image','dob','bio']

the rest of the form works fine (updates the contents of profile as expected) but the BooleanField for anonymous does not work when the radio buttons are clicked before submitting the form表单的其余部分工作正常(按预期更新配置文件的内容)但在提交表单之前单击单选按钮时,用于匿名的 BooleanField 不起作用

在@harshil9968 要求提供个人资料表后,我意识到我没有在我的个人资料表中包含匿名,因此在表单提交时未处理单选按钮的输出

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

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