2014-10-19 2 views
0

django 웹 사이트에 사용자 인증을 추가합니다. 그리고 User이있는 사람들을 OneToOneField 필드에 추가하십시오. http: //localhost:8000/admin 페이지로 이동하여 학생을 추가하려고 시도합니다.Auth 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

어떻게 확인하나요? 'student' 모델의'user.email','user.first_name'에 의해'email, first_name, ... '에 접근 할 수 있습니다. –

+0

admin 페이지에서이 파일을 채울 수 없습니다. – Denis

+0

'admin.py'. <클래스 'lab.admin.UserInline'> : (admin.E202) 'auth.User가'lab.Student '에는 외래 키가없는 –

답변

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가 ERRORS을 추가의 runserver. – Denis

+0

@Denis 내 편집을 확인하십시오. 'People' 모델에 이것을 사용하십시오. 어쩌면 당신을 도울 것입니다. 'AdminInline'은 상속 된 모델에서 작동하지 않습니다. –

+0

파일 "/home/denis/WebDir/laboratory1/env/local/lib/python2.7/site-packages/django/contrib/admin/sites.py", 81 행의 레지스터에 '을 (를) admin에 등록 할 수 없습니다. ' % model .__ name__) django.core.exceptions.ImproperlyConfigured : 모델 인물은 추상적이므로 관리자로 등록 할 수 없습니다. – Denis

관련 문제