- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当我使用 获取
例如,如果使用下一个模型:BooleanField
时,我需要接收一个字符串值('0'
或 '1'
) >query.values()
class Person(models.Model):
name = models.CharField()
male = models.BooleanField()
然后做:
print json.dumps(list(Person.objects.values()))
我会收到这个:[{"name":"Tom","male":true},{"name":"Lisa","male":false}]
但我需要这样:[{"name":"Tom","male":"1"},{"name":"Lisa","male":"0"}]
最好的方法是什么?
最佳答案
解决方案 1 使用 CustomBooleanField
:
您可以子类化 BooleanField
并添加一个函数 from_db_value
它将 True/False
的值返回为 1/0
。
class CustomBooleanField(models.BooleanField):
def from_db_value(self, value, expression, connection, context):
if value is None:
return value
return int(value) # return 0/1
然后在您的模型中,您可以将此自定义字段用于 male
。
class Person(models.Model):
name = models.CharField()
male = CustomBooleanField() # use the custom field
当您从数据库中获取值时,这将为您提供 male
的值作为 1/0
而不是 True/False
Solution-2 使用自定义 json 编码器:
来自docs,
To use a custom JSONEncoder subclass (e.g. one that overrides the
default()
method to serialize additional types), specify it with thecls
kwarg
Solution-3 使用列表理解:
另一种选择是使用 list comprehensions.
要将 True/False
转换为 1/0
,我们将使用 int(some_boolean_value)
。
objects_list = list(Person.objects.values())
modified_list = [{"name":x["name"], "male": int(x["male"])} for x in objects_list] # use list comprehension
json.dumps(modified_list)
关于python - Django model.BooleanField 值为 0/1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33021461/
考虑这个简单的 django 模型(由 Postgres 支持): class M(Model): a = BooleanField(default=False) b = Boolea
在我的项目中,用户可以使用任意数量的“联系方式”。例如,一个用户可以只定义移动电话,而另一个用户可以定义移动电话、邮件、Skype 和其他一些。应该可以为每个用户设置一个主要的“联系方式”,所以我创建
Django 1.0.2 中是否有一个小部件可以将 models.BooleanField 呈现为两个单选按钮而不是复选框? 最佳答案 Django 1.2 为模型表单添加了“widgets”Meta
我有这个: force_email = BooleanField('force_email', widget=HiddenInput(), default=False) 我希望在 HTML 模板中将值
我有以下型号: class Profile(models.Model): verified = models.BooleanField(default=False) def prima
我正在使用 Django 1.5.4 这是我面临的问题的一个最小示例。 该模型: #models.py from django.db import models class SampleModel(m
我正在通过构建一个示例应用程序来学习 Django,学生可以在其中选择参与学习部分。参与操作是一个 bool 字段,我希望学生能够选中或取消选中并更新它。默认情况下它是未选中的,我可以选中它并保存表单
我有一个 MySQL 数据库,其中数据是从 Access 数据库迁移的。问题在于 access 将 bool 真值保存为 -1,而 django 将 bool 真值保存为 1(通常发生在 MySQL
我正在使用 Flask-WTForms 创建一个表单。 我正在使用 BooleanField,以便用户可以表明他们同意条款。 我无法在提交时验证 BooleanField 以确保它已被检查。我尝试过使
有没有办法让 Django BooleanField 成为表单中的下拉菜单? 现在它呈现为一个单选按钮。是否可以有一个带有选项的下拉菜单:"is"、“否”? 目前我对该字段的表单定义是: attend
我有以下模型: class Foo(models.Model): pass class Bar(models.Model): foo = models.ForeignKey(Foo)
我的 Django 应用程序有这样一个模块: class myApp(models.Model): is_new = models.BooleanField(default=True)
我正在使用crispy_forms 和FormHelper。我有一个模型字段声明为: active = models.BooleanField(default=True) 在我的 ModelForm
简单情况,模型: class Manufacturer(models.Model): name = models.CharField(max_length=200) slug = mo
我对 Django 相当陌生,我正在使用 Django 1.0。我有这个: 表单.py: class MyForm(forms.Form): extra_cheeze = forms.Bool
简单情况,模型: class Manufacturer(models.Model): name = models.CharField(max_length=200) slug = mo
我找不到一种街头方式来做到这一点。 最佳答案 我找不到一种简单的方法来做到这一点,所以我用 JavaScript 进行了调整来做到这一点。 $(document).ready(function() {
我正在编写一个脚本,通常从数据库中检索 5 行,我想将其显示为复选框列表。 但它无法正确显示:它显示“UnboundField ” form.py class ExampleForm(FlaskFor
我在 postgresql 中尝试 order_by booleanfield 时看到奇怪的输出。 我有一个默认为 false 的 bool 字段我正在使用 order_by(-thebooleanf
在我的 flask 项目中,我有 views.py、models.py(SQLAlchemy 到 postgres)和 forms.py 文件。我一直在 form.py 中定义表单并从 views.p
我是一名优秀的程序员,十分优秀!