Django:操作错误,找不到此列
我对数据库完全是个新手(甚至可以说一无所知),而且对Django也不太了解,不过我对Python很熟悉。我正在使用Sqlite作为我的数据库软件。每次我试图从Django管理面板添加新用户时,总是会出现一个
OperationalError at /admin/auth/user/add/
table dashboard_member has no column named user_id
错误。以下是我的models.py:
from django.db import models # importing database library from Django
from django.contrib.auth.models import User
class Member(models.Model): # table for members' info
DEPARTMENTS = (
('Quiz', 'Quizzing'),
('Design', 'Design'),
('Elec', 'Electronics'),
('Prog', 'Programming'),
)
CLASSES = ( # tuples to store choices for each field
(9, '9'), # (actual value to be stored, human-readable value),
(10, '10'),
(11, '11'),
(12, '12'),
)
DESIGNATIONS = (
('Mem', 'Member'),
('ExecMem', 'Executive Member'),
('VicePres', 'Vice President'),
('Pres', 'President'),
)
user = models.OneToOneField(User) # to inherit the properties of the base User class in Django, like first_name, last_name, password, username, etc.
schoolClass = models.IntegerField('Class', choices = CLASSES)
desig = models.CharField('Designation', max_length = 20, choices = DESIGNATIONS)
dept1 = models.CharField('Department 1', max_length = 20, choices = DEPARTMENTS)
dept2 = models.CharField('Department 2', max_length = 20, choices = DEPARTMENTS)
#proPic = models.ImageField('Profile Picture', upload_to = 'profile_pics')
def __unicode__(self):
return self.user.username
class DepInfo(models.Model): # table for info specific to each department
DEPARTMENTS = (
('Quiz', 'Quizzing'),
('Design', 'Design'),
('Elec', 'Electronics'),
('Prog', 'Programming'),
)
dept = models.CharField('Department', max_length = 20, choices = DEPARTMENTS)
agenda = models.TextField('Agenda', max_length = 1000) # editable text fields
workMat = models.TextField('Working Material', max_length = 1000)
furRead = models.TextField('Further Reading', max_length = 1000)
这是我的admin.py:
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.admin import User
from dashboard.models import Member, DepInfo
class MemberInline(admin.StackedInline):
model = Member
can_delete = False
verbose_name_plural = 'member'
class UserAdmin(UserAdmin):
inlines = (MemberInline, )
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
#admin.site.register(Member)
admin.site.register(DepInfo)
# Register your models here.
问题是,我根本没有定义任何叫user_id的列,而且在我创建表的时候,也没有显示出叫user_id的列。有人能帮我解决这个问题吗?
1 个回答
0
手动删除在 myapp/migrations 文件夹下的 .py 迁移文件。这些文件的格式是:init.0001.py 和 0002_migrations.py。把所有这种类型的文件都删除掉,然后执行以下命令:
$: python manage.py makemigrations myapp
$: python manage.py migrate myapp 0001
$: python manage.py sqlmigrate myapp 0001