2011-05-22 5 views
1

django-registrationで追加のフィールド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

Thisは、必要に応じてhow to use signals to create a new profileを示す例です。

例を簡単に拡張して、プロファイルを作成したときにネットワークフィールドを編集したり、ユーザーが保存されるたびにネットワークフィールドが設定されているかどうかを確認することができます。

関連する問題