11

私はdjango-registrationアプリとDjango 1.5を使用しています。(djangoの新機能)カスタムユーザーモデルを作成し、登録中にこのデータも保存する方法(django-registrationを使用していることに注意してください):

class CustomProfile(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=255)
    bank = models.CharField(max_length=255)
    address = models.CharField(max_length=255)

?

4

3 に答える 3

9

django-registration のメイン フォークは、現時点では django 1.5 と互換性がありません。

このプルリクエストを確認してください。

次の 3 つのオプションがあります。

  • django-registration のコードにパッチを当てます。プル リクエストから必要な変更を取得できます。
  • すでにパッチが適用されている非公式のフォークを使用してください。たとえば、これ。
  • メインフォークの更新を待ちます...
于 2013-03-08T15:51:34.320 に答える
4

このリンク はプロセスをよく説明しており、django-registration 1.0 で動作します

上記のコードに加えて、いくつかの追加のポインターを次に示します。

名を更新するには、models.py でこれを変更します

def user_registered_callback(sender, user, request, **kwargs):
profile = ExUserProfile(user = user)
profile.is_human = bool(request.POST["is_human"])
user.first_name = request.POST["firstname"]
user.save()
profile.save()

user_registered.connect(user_registered_callback)

そしてforms.pyファイルで

class ExRegistrationForm(RegistrationForm):
    is_human = forms.BooleanField(label = "Are you human?:")
    firstname = forms.CharField(max_length=30)
    lastname = forms.CharField(max_length=30)

最後に、フォームの変更を確認して、適切なテンプレートを作成します。アプリで admin.py というファイルを作成し、次のコードを記述することで、管理画面でプロファイルを確認できます。

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

admin.site.unregister(User)

class UserProfileInline(admin.StackedInline):
    model = ExUserProfile

class UserProfileAdmin(UserAdmin):
    inlines = [ UserProfileInline, ]

admin.site.register(User, UserProfileAdmin)
于 2013-07-02T05:42:39.457 に答える