选中的复选框不会将bolean发送到数据库

时间:2019-07-22 17:23:05

标签: html django

我创建了一个自定义注册页面。

我希望用户默认具有两个布尔字段is_nhsagree_conditions

但是,我的html中的checked属性无法正常工作。数据库确实收到了它。实际上,如果我以超级用户身份登录django仪表板,则属性is_nhsagree_conditions始终设置为false(红叉)。

我的自定义用户模型:

class CustomUser(AbstractUser):
  first_name = models.CharField(max_length=100, default='')
  last_name = models.CharField(max_length=100, default='')
  organization = models.CharField(max_length=100, default='')
  location = models.CharField(max_length=100, default='')
  postcode = models.CharField(max_length=100, default='')
  phone = models.CharField(max_length=100, default='')
  agree_conditions = models.BooleanField(default=True)
  is_nhs = models.BooleanField(default=False)

  def __str__(self):
    return self.email

我的signup.html

 <form>
      <div class="form-group form-check">
        <input type="checkbox" class="form-check-input" id="exampleCheck1" checked="checked">
        <label class="form-check-label" for="exampleCheck1" name="agree_conditions">Agree conditions</label>
        <a href="{% url 'conditions'%}">Click here to see the conditions you are accepting</a>
      <div class="form-check" hidden>
      <input class="form-check-input" type="radio" name="is_nhs" id="exampleRadios1" value="Yes" required checked>
      <label class="form-check-label" for="exampleRadios1">
        Yes
      </label>
    </div>
      <button type="submit" class="btn btn-primary">Submit</button>
    </form>

我尝试按照此指南将checked_attribute更改为失败: What's the proper value for a checked attribute of an HTML checkbox?

此外,我发现奇怪的是,agree_conditions(在我的模型字段中)显示一个红叉(在管理/超级用户仪表板中),即使它是通过defaul=True

1 个答案:

答案 0 :(得分:0)

您的复选框输入没有name属性;实际上,您好像误将name属性放在标签上了。应该是:

<input type="checkbox" class="form-check-input" name="agree_conditions" id="exampleCheck1" checked="checked">
<label class="form-check-label" for="exampleCheck1">Agree conditions</label>

(注意,您确实应该为此使用Django表单类。)