[英]Django model choice field default value not working
我正在一个基本的Django网站上工作。
我在models.py文件中添加了一个名为“状态”的“模型”字段,如下所示:
from django.db import models
class Person(models.Model):
USED_STATUS = (
('Y', 'Used'),
('N', 'Not used'),
)
status = models.CharField(max_length=1, choices=USED_STATUS, default=USED_STATUS[1][0])
但是当我用phpmyadmin进入数据库时,“状态”模型字段的默认值是None ,应该是'N' 。 此外,当我尝试使用Python SQL脚本插入一条记录到同一个数据库表,它抛出一个错误:“ 警告:(1364,‘现场‘状态’没有默认值’)”。 我已经搜索了整个论坛,但找不到任何类似的问题,请帮忙。
在模型中添加的默认值不会反映在生成的SQL DDL语句中。 之所以这样是最有可能的,是因为没有什么能阻止人们使用可调用函数作为默认值,而可调用键运行复杂的代码来找出默认值。 这些可调用对象显然无法替换到数据库中。
您最好直接使用ORM。 如果您希望通过独立的python脚本使用Django ORM与您的数据库进行通信,则可以初始化该脚本并调用import django; django.setup()
import django; django.setup()
几乎可以确保您可以导入模型并通过ORM运行查询。
注意 :您可能必须导出DJANGO_SETTINGS_MODULE
env变量才能DJANGO_SETTINGS_MODULE
起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.