0

Django 1.4

これがばかげた質問である場合は申し訳ありませんが、私はDjangoにかなり慣れていません。組み込みの認証プロファイルシステムを介して、ユーザーとプロファイルをリンクしようとしています。私が見つけることができるこのすべての例は、クラスベースのビューを使用していません。これは私が本当に使用したいものです。

基本的に、プロファイルとユーザーを組み合わせて、両方を同時に作成できるフォームが必要です。可能であれば、同じフォームを使用してユーザー+プロファイルを編集/作成したいと思います。

プロファイルのモデルを作成しました:プロファイル

作成されたフォーム:

class UserForm(forms.ModelForm):
    class Meta:
        model = User


class ProfileRegisterView(FormView):
    template_name = 'profile-register-form.html'
    form_class    = UserForm
    success_url   = '/account/created/'

プロファイルをユーザーモデルに追加しても、ユーザーフォームに含まれていないようです。

AUTH_PROFILE_MODULE = "creative_profile.Profile"

私が試した2番目の方法は、forms.pyで個々のフォームを定義することでしたが、form_class属性は1つのフォームモデルのみを受け入れます。

どんなポインタも助けてくれるでしょう、ありがとう

4

2 に答える 2

0

私はもっ​​と簡単な方法でそれをします(私は提案します)。djangoビルドインを使用するだけです。urls.pyにを追加しまし(r'^login/$','django.contrib.auth.views.login')た。settings.pyLOGIN_URL='/login /'を追加し、MIDDLEWARE_CLASSES' django.contrib.auth.middleware.AuthenticationMiddleware'を追加します。変更する場合は、 registration/login.htmlテンプレートをローカルにコピーします。このような操作の後、ユーザーとしてログインできるようになります。忘れてしまったので、 django.contrib.auth.modelsユーザーとグループからもインポートする必要があります。

于 2012-11-26T19:20:50.907 に答える
0

考えられる解決策の1つは、ユーザーフォームにプロファイルフィールドを含め、 save()メソッドをオーバーライドしてプロファイルフィールドにデータを入力することです。

post_saveシグナルを使用してモデルを作成していない場合、save()メソッドにはプロファイルモデルのget_or_create()呼び出しを含める必要があります。post_saveシグナルを使用してプロファイルモデルを作成している場合は、get_profile()メソッドを呼び出す前に、まずユーザーが保存されていることを確認する必要があります。

于 2012-11-26T19:27:56.853 に答える