我昨天第一次安装了Django并且今天认真地试了一下.我只打算将它用于漂亮的管理界面,其余的用于Zend Framework.
我将现有表event导入管理员.没有需要加入.但主键不是"id",它被称为"事件"(遵循此命名约定).我显然不希望此列的id#出现在数据输入表单中.
一切正常,除了添加新事件,我点击保存并继续编辑,它添加事件,但重定向URL到 http://127.0.0.1:8000/admin/events/event/None/ 并吐出这个错误
ValueError at /admin/events/event/None/
invalid literal for int() with base 10: 'None'
Run Code Online (Sandbox Code Playgroud)
这是我的models.py:
from django.db import models
class Event(models.Model):
event = models.IntegerField(primary_key=True)
title = models.CharField(max_length=150)
address_1 = models.CharField(max_length=150)
url = models.URLField(max_length=500,verify_exists=False)
start_date = models.DateField()
end_date = models.DateField()
ACTIVE_CHOICES = (
(0, 'InActive'),
(1, 'Active'),
)
active = models.CharField(max_length=1, default=1, choices=ACTIVE_CHOICES)
def __unicode__(self):
return self.title
class Meta:
db_table = u'event'
Run Code Online (Sandbox Code Playgroud)
我有什么想法或者如何解决这个问题?
你可能希望PK是一个AutoField而不是一个,IntegerField所以Django会自动为你填充它.否则,您必须在save方法或管理界面中自己完成:
class Event(models.Model):
event = models.AutoField(primary_key=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
488 次 |
| 最近记录: |