2016-03-18 4 views
0

Я создал модель профиля, которая содержит дополнительные поля для модели пользователя. Он работает так, как ожидалось, но когда я добавляю нового пользователя, добавленные поля отображаются как на странице «Добавить пользователя» (первая страница), так и на странице «Изменить пользователя» (вторая страница). Как я могу запретить появление моих добавленных полей на странице «Добавить пользователя»?В администраторе Django я могу помешать появлению добавленных полей профиля пользователя на странице «Добавить пользователя»?

models.py

from django.db import models 
from django.contrib.auth.models import User 

class Member(models.Model): 
    user = models.OneToOneField(User, on_delete=models.CASCADE) 
    my_added_field = models.CharField(max_length=15) 

admin.py

from django.contrib import admin 
from django.contrib.auth.admin import UserAdmin 
from django.contrib.auth.models import User 

from .models import Member 

class MemberInline(admin.StackedInline): 
    model = Member 

class MemberAdmin(UserAdmin): 
    inlines = (MemberInline,) 

admin.site.unregister(User) 
admin.site.register(User, MemberAdmin) 

ответ

0

Вы должны использовать exclude = 'your-field-name' в Мета 'поле имя ваше' это поле, которое вы не хотите для показа в разделе admin.

+0

Нужно ли расширять UserCreationForm и исключать там поле? – Mike

+0

Нет, вы должны поместить этот код в сериализатором класса Meta: исключить = «вы-имя-поля» –

+0

Я новичок в веб-разработки и Django, вы можете дать ссылку, где я могу прочитать больше об этом ? Информация, которую я нашел на djangoproject.com, описывает использование сериализаторов для перевода моделей в другие форматы (например, json, xml) и для создания настраиваемых полей. Кроме того, мне интересно, исключает ли этот подход мои добавленные поля из всех форм? Я хочу исключить их только из UserCreationForm. – Mike