Добавление настраиваемого поля профиля в django-регистрации - PullRequest
1 голос
/ 22 мая 2011

Я добавил одно дополнительное поле, network, в django-registration.

# in myproject.userprofile

from django.db import models
from django.contrib.auth.models import User
from myproject.network.models import Network

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    network = models.ForeignKey(Network, unique=True)

# in settings.py

AUTH_PROFILE_MODULE = 'userprofile.UserProfile'

Мне не нужно добавлять ничего нового в формы, так как сеть создается на основе авторизованного пользователяадрес электронной почты.

Пока у меня есть следующее - которое работает, но, очевидно, это не лучший способ сделать это -

profile_additional = UserProfile.objects.create(user=User.objects.get(username=username),network=Network.objects.get(network=EmailList.objects.get(email=email).network))

Не могли бы вы показать мне предпочтительный способ сделатьэто то же самое?Я прочитал пару уроков по добавлению дополнительных полей с помощью сигналов, но, похоже, не могу заставить его работать самостоятельно.Код, демонстрирующий, как это сделать, будет высоко ценится.Спасибо.

1 Ответ

1 голос
/ 22 мая 2011

Этот является примером, который показывает вам , как использовать сигналы для создания нового профиля при необходимости.

Вы можете легко расширить пример для редактирования своей сетиполе, когда ваш профиль создан или для проверки, устанавливается ли сетевое поле каждый раз, когда пользователь сохраняется.

...