周末在家把自己老电脑系统重做后,重新配置了python+pycharm的环境,本来一切正常但在写一个django的小Demo时问题出现了,先来看下代码:
首先是model.py文件的内容:
from django.db import models
# Create your models here.
class Student(models.Model):
SEX_ITEMS = [
(1, '男'),
(2, '女'),
(0, '未知'),
]
STATUS_ITEMS = [
(0, '申请'),
(1, '通过'),
(2, '拒绝'),
]
name = models.CharField(max_length=128, verbose_name='姓名')
sex = models.IntegerField(choices=SEX_ITEMS, verbose_name='性别')
profession = models.CharField(max_length=128, verbose_name='职业')
email = models.EmailField(verbose_name='Email')
qq = models.CharField(max_length=128, verbose_name='QQ')
phone = models.CharField(max_length=128, verbose_name='电话')
status = models.IntegerField(choices=STATUS_ITEMS, default=0, verbose_name='审核状态')
create_time = models.DateTimeField(auto_now_add=True, editable=False, verbose_name='创建时间')
def __str__(self):
return '<Student: {}>'.format(self.name)
class Meta:
verbose_name = verbose_name_plural = '学员信息'
之后是admin.py文件:
from django.contrib import admin
from student.models import Student
# Register your models here.
class StudentAdmin(admin.ModelAdmin):
list_display = (
'id','name','sex','profession','email','qq','phone','status','create_time'
)
list_filter = (
'sex','status','create_time'
)
search_fields = ('name','profession')
fieldsets = (
(
None, {
'fields': (
'name',
('sex','profession'),
('email','qq','phone'),
'status',
)
}
),
)
admin.site.register(Student, StudentAdmin)
两个文件的代码都很简单,就是使用Django自带的admin功能,实现了一个学员的录入及管理功能。在运行这个demo时,可以进入登陆页面,但只要一输入用户名和密码点击登录,django就会结束运行,除了一句:Process finished with exit code -1 外没有任何报错信息,这是怎么回事呢?查了很久都没找到原因,后来突然想到,是不是因为Django的版本问题呢?这么想的原因有两个,首先是之前也做过类似的Demo,一切正常的;其次是因为系统是新装的,之前用的Django版本都是2.x,而这次默认是用的最新版Django3.0(pycharm自动创建Django项目时自动安装),想到这里就试着把Django3.0版本删除后重新指定版本2.0进行安装,安装后运行Demo,一切正常了。