2012-02-12 9 views
0

私は最初のDjangoプロジェクトに取り組んでおり、django-registrationとdjango-profilesを採用しています。前者はnaryの問題で美しく働いた。 2番目の問題はもう少し問題になっています。Django_Profilesは自動的にプロファイルやその他のエラーを作成しません

最終的には、特定のユーザープロファイルをすべて表示することができます。これには、すべてのプロファイルの一覧が含まれます。

私が直面している2つの問題:django-profilesは、新しいユーザーが作成されたときに自動的に新しいプロファイルを作成しません。管理者にユーザーを作成したら、プロファイルを作成する必要があります。それは起こっていない。また

、このエラーでプロファイル/ edit_profileフォーム結果:

「/プロフィール/編集/レンダリング中NoReverseMatchをキャッチでTemplateSyntaxError: '(、)の主張と 『edit_profile』のリバースとキーワード引数 " {}' 見つかりません。"

私はこれらの問題に対する回答を無駄に検索しました。

これは私のアプリのファイルにプロファイルのモデルである:

class UserProfile(models.Model): 
    user = models.ForeignKey(User, unique=True) 
    first_name = models.CharField(max_length=25) 
    last_name = models.CharField(max_length=35) 
    email = models.EmailField() 
    birth_date = models.DateField(blank=True, null=True) 
    city = models.CharField(max_length=25) 
    state = models.CharField(max_length=20) 
    zip_code = models.CharField(max_length=10) 

    def __unicode__(self): 
     return " %s" % (self.user) 

    def get_absolute_url(self): 
     return ('profiles_profile_detail',(), { 'username': self.user.username }) 
    get_absolute_url = models.permalink(get_absolute_url) 

は、これが私のフォームです:

class ProfileForm(forms.ModelForm): 
    class Meta: 
     model = UserProfile 

これはテンプレートです:

{% extends 'base.html' %} 
{% block page_title %}Edit Profile{% endblock %} 

{% block headline %}Edit Stentorian Profile{% endblock %} 

{% block content %} 

<form action="{% url edit_profile user %}" method="post">{% csrf_token %} 
{{ form.as_p }} 
<input type="submit" value="Submit" /> 
</form> 

{% endblock %} 

学習に興味私が作ったエラーとこれを修正する方法。 (私は、ユーザーオブジェクトが姓と名を持っていることを認識していますが、独自のフィールド以外のプロファイルにこれらを挿入する方法は他にありません)。

洞察力があります。

編集:The Missing Manualのおかげでうまくいったようです。残念ながら、/ profiles/editは/ profiles/createにバウンスします。この問題は不明です。

+0

'UserProfile'を自動的に作成するには、djangoのdocs: https://docs.djangoproject.com/ja/dev/topics/auth/#storing-additional-information-about-usersをご覧ください。 ポストセーブ信号を使用してプロファイルを生成できます。 「NoReverseMatch」に関しては、あなたが指定したパーマリンクを扱うようにURLを設定していないように思えます。あなたはdjango-profilesをインクルードしていることを確認する必要があります。urls.py –

+0

私はURLファイルを含めました:\t url(r '^ profiles /'、include( 'profiles.urls'))、ありがとうございます他の情報。私はすぐにそれを試みます。私が言ったように、特定のプロフィールとリストを見ることができます。これは、テンプレートにフィット感を与えるフォームです。 –

答えて

0

ここにあなたに役立つリンクがあります。

django-profiles the missing manual

スクロールNO MISSINGプロファイルにダウン!セクション。ここでは、ユーザーインスタンスが作成されるたびにプロファイルを作成する必要があることを説明します。

関連する問題