2014-10-19 88 views
0

我開始將用戶用戶驗證添加到django網站。並通過OneToOneField添加User字段的人員。我去http: //localhost:8000/admin頁面並嘗試添加學生,管理員頁面的驗證用戶模型

但學生只有Born, Record book, User(which have only Имя пользователя, Пароль)。但沒有email, first_name, lastname。爲什麼?

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  

我看到這個rus django booktango with django

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) 
+0

你如何檢查這個?您可以通過'user.email'訪問'email,first_name,...','Student'模型的'user.first_name'。 – 2014-10-19 12:10:45

+0

我無法填寫管理頁面 – Denis 2014-10-19 12:15:35

+0

給你的'admin.py'。 – 2014-10-19 12:29:05

回答

1
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) 
1

變化admin.py這樣的:

class UserInline(admin.StackedInline): 
    model = User 
    extra = 1 

class PeopleAdmin(admin.ModelAdmin): 
    inlines = [UserInline] 

admin.site.register(People, PeopleAdmin) 
+0

然後./manage RUNSERVER 錯誤: <類 'lab.admin.UserInline'>:(admin.E202) 'auth.User' 沒有ForeignKey的爲 'lab.Student'。 – Denis 2014-10-19 18:12:24

+0

@Denis檢查我的編輯。將其用於'People'模型。也許幫助你。 'AdminInline'不適用於繼承模型。 – 2014-10-19 18:32:46

+0

無法向管理員註冊文件「/home/denis/WebDir/laboratory1/env/local/lib/python2.7/site-packages/django/contrib/admin/sites.py」,行81,註冊號爲 '。 「 %model .__ name__) django.core.exceptions.ImproperlyConfigured:模型People是抽象的,所以它不能用admin註冊。 – Denis 2014-10-19 20:55:00

相關問題