2017-09-20 3 views
0

UserCreationFormのdjangoを使用してサインアップページを作成しました。UserCreationFormモデルの外部キーを使用するユーザ

signup.html

class UserCreationForm(UserCreationForm): 
    email = EmailField(label=_("Email address"), required=True, help_text=_("Required.")) 

    class Meta: 
     model = User 
     fields = ("username", "email", "password1", "password2") 

    def save(self, commit=True): 
     user = super(UserCreationForm, self).save(commit=False) 
     user.email = self.cleaned_data["email"] 
     if commit: 
      user.save() 
     return user 

しかし、私はまたmodels.pyで他のテーブルを作成する必要があります。だから別のテーブルにある場合category私はUserCreationFormのこの組み込みユーザーの主キーの外部キーを作成する必要があります。これの主キーは何ですか?

models.py

class category(models.Model): 
    uid = models.ForeignKey(#) 
    cname = models.CharField(max_length=20) 

    def __unicode__(self): 
     return u"{} {}".format(self.uid, self.cname) 
    class Meta: 
     db_table = "category" 

私は#の代わりに何を書きますか? Userモデルへ

+1

は、フォームとモデルとの違いを学ぶ必要があります。

​​

以上、場合にあなたはUserモデルをカスタマイズしたい場合があります。フォームは、基になるモデルには決して影響しません。同じモデルを使用して、複数の異なるフォームを作成してユーザーを作成できます。あなたのユーザモデルはまだ標準的なdjangoユーザなので、外部キーは 'User'モデルを指しているはずです。単に 'User'をインポートして外来キーを作るか、それ以上の方がデフォルトでDjango' User'である 'settings.AUTH_USER_MODEL'を使用しますが、カスタムユーザモデルに変更される可能性があります。 – dirkgroten

+0

それはサー!!!!ありがとう。 – Shefali

答えて

1

だけでポイントは:

from django.conf import settings 
uid = models.ForeignKey(settings.AUTH_USER_MODEL) 
関連する問題