管理员页面中的认证用户模型
我开始在Django网站上添加用户认证功能。我创建了一个名为People的类,并通过OneToOneField
添加了一个User
字段。然后我打开http://localhost:8000/admin
页面,尝试添加学生。
但是学生的表单里只有出生日期、学籍号、用户(只有用户名和密码)
这些字段,却没有邮箱、名字、姓氏
。这是为什么呢?
models.py:
class People(models.Model):
user = models.OneToOneField(User)
born = models.DateField() # born date
class Meta:
abstract = True
class Student(People): # Ingeritance
record_book = models.CharField(max_length=75) # students record book
group = models.ForeignKey(Group)
def __unicode__(self):
return "Student:" + self.user.name + ' ' + self.user.surname
def get_absolute_url(self):
return "/student/%i/" % self.id
admin.py:
# -*- coding: utf-8 -*-
from django.contrib import admin
from models import Professor, Student, Subject, Group, PageLaboratoryWork, MadeLaboratoryWork, LabComment
admin.site.register(Professor)
admin.site.register(Student)
admin.site.register(Subject)
admin.site.register(Group)
admin.site.register(PageLaboratoryWork)
admin.site.register(MadeLaboratoryWork)
admin.site.register(LabComment)
2 个回答
1
把 admin.py
文件改成这样:
class UserInline(admin.StackedInline):
model = User
extra = 1
class PeopleAdmin(admin.ModelAdmin):
inlines = [UserInline]
admin.site.register(People, PeopleAdmin)
1
在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这个时候,我们可以去一些技术论坛,比如StackOverflow,寻求帮助。在这些论坛上,很多人会分享他们的经验和解决方案。
当你在这些论坛上提问时,记得把你的问题描述清楚,包括你遇到的具体情况和你尝试过的解决方法。这样,其他人才能更好地理解你的问题,并给出有效的建议。
同时,查看别人遇到的类似问题和解决方案也是一个很好的学习方式。通过这些讨论,你可以学到很多编程技巧和知识,帮助你更好地解决自己的问题。
总之,技术论坛是一个很好的资源,可以帮助你在编程的路上少走弯路。
from models import Student
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
admin.site.register(Student)
admin.site.unregister(User)
class MyUserAdmin(UserAdmin):
add_fieldsets = (
(None, {
'classes': ('wide',),
'fields': ('username', 'email', 'first_name', 'last_name', 'password1', 'password2')}
),
)
admin.site.register(User, MyUserAdmin)