我创建了一个自定义注册页面。
我希望用户默认具有两个布尔字段is_nhs
和agree_conditions
。
但是,我的html中的checked
属性无法正常工作。数据库确实收到了它。实际上,如果我以超级用户身份登录django仪表板,则属性is_nhs
和agree_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
答案 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表单类。)