Dea*_*dly 0 python django django-models
我已经开始学习django并且使用ORM(DB mysql)进行INSERT查询时遇到问题.我的模特:
class Record(models.Model):
id = models.AutoField(primary_key=True, blank=True),
schema_id = models.IntegerField(),
name = models.CharField(max_length=50),
desc = models.TextField(blank=True)
class Meta:
db_table = 'keeper_record'
Run Code Online (Sandbox Code Playgroud)
以下代码是view.py中的句柄后查询:
def add_record(request):
if request.method == 'POST':
Record.objects.create(
schema_id = request.POST.get('schema_id', 1),
name = request.POST.get('name', 'd'),
desc = request.POST.get('desc', ' ')
)
record.save()
return HttpResponse('')
Run Code Online (Sandbox Code Playgroud)
但是此代码引发错误:
Request Method: POST
Request URL: http://127.0.0.1:8000/records/add/
Django Version: 1.3.1
Exception Type: TypeError
Exception Value:
'schema_id' is an invalid keyword argument for this function
Exception Location: C:\Program Files (x86)\Python\lib\site-packages\django\db\models\base.py in __init__, line 364
Python Executable: C:\Program Files (x86)\Python\python.exe
Python Version: 2.7.2
Python Path:
['D:\\Projects\\passkeeper',
'D:\\\xcf\xf0\xee\xe3\xf0\xe0\xec\xec\xfb\\\xcf\xf0\xee\xe3\xf0\xe0\xec\xec\xe8\xf0\xee\xe2\xe0\xed\xe8\xe5\\PyCharm\\helpers',
'D:\\Projects\\passkeeper',
'D:\\Projects',
'C:\\Windows\\system32\\python27.zip',
'C:\\Program Files (x86)\\Python\\DLLs',
'C:\\Program Files (x86)\\Python\\lib',
'C:\\Program Files (x86)\\Python\\lib\\plat-win',
'C:\\Program Files (x86)\\Python\\lib\\lib-tk',
'C:\\Program Files (x86)\\Python',
'C:\\Program Files (x86)\\Python\\lib\\site-packages']
Run Code Online (Sandbox Code Playgroud)
我为python安装了mysql驱动程序,并为项目设置了标准设置,但只删除了csrf
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
#'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
Run Code Online (Sandbox Code Playgroud)
我的猜测是你的模型定义中的这些逗号.
您正在设置schema_id模型字段的元组.id = (models.AutoField(...),)
删除尾随的逗号,你应该好好去.
class Record(models.Model):
id = models.AutoField(primary_key=True, blank=True), # remove ,
schema_id = models.IntegerField(), # remove ,
name = models.CharField(max_length=50), # remove ,
desc = models.TextField(blank=True)
class Meta:
db_table = 'keeper_record'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |