在Save and Continue重定向到None而不是主键的id之后,Django管理员崩溃.救命?

joe*_*von 0 mysql django

我昨天第一次安装了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)

我有什么想法或者如何解决这个问题?

Ste*_*osh 5

你可能希望PK是一个AutoField而不是一个,IntegerField所以Django会自动为你填充它.否则,您必须在save方法或管理界面中自己完成:

class Event(models.Model):
    event = models.AutoField(primary_key=True)
Run Code Online (Sandbox Code Playgroud)