gpt4 book ai didi

python - 如何在 Django 中使用复选框在 MySQL 中输入 1 或 0?

转载 作者:太空宇宙 更新时间:2023-11-03 12:09:08 25 4
gpt4 key购买 nike

使用 inspectdb,我有一个 User 表的以下模型:

class User(models.Model):
id = models.IntegerField(primary_key=True)
name = models.CharField(unique=True, max_length=128)
active = models.IntegerField(blank=True, null=True)
created_date = models.DateTimeField()
class Meta:
managed = False
db_table = 'user'

我想创建一个简单的表单来添加一个新的用户,使用Crispy Forms ,但使用默认字段,active 变为数字输入字段,而我更愿意将其设置为复选框。不幸的是,简单地将字段设置为 CheckboxInput 并不会削减它,因为它不会自动将开/关状态更改为 1/0。这是我的上下文表格:

class CreateUserForm(ModelForm):
def __init__(self, *args, **kwargs):
super(CreateUserForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_class = 'form-horizontal'
self.helper.label_class = 'col-lg-3 col-md-2 col-sm-2'
self.helper.field_class = 'col-lg-6 col-md-8 col-sm-10'
self.helper.layout = Layout(
'name',
'active',
FormActions(
Submit('submit', 'Submit'),
HTML('<a class="btn btn-default" href="{% url "app:user:list" page="1" %}">Cancel</a>'),
),
)

class Meta:
model = User
fields = ['name', 'active']
widgets = {
'note': Textarea(attrs={'cols': 23, 'rows': 4}),
'active': CheckboxInput()
}

注意:所有 classes 都用于 Twitter Bootstrap。

有什么方便的方法吗?我可以更改某处提交的数据吗?或者我应该采取不同的方法吗?

最佳答案

使用 BooleanField 而不是 IntegerField。这不需要更改数据库表,因为 BooleanField 在内部将 bool 值转换为 1 和 0。无论如何,MySQL 的“ bool ”列类型只不过是 tinyint(1) 的别名,即用作 1/0 真值的整数类型。您也可以对其他整数列类型执行此操作。

关于python - 如何在 Django 中使用复选框在 MySQL 中输入 1 或 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25127513/

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