2012-03-08 21 views
11

『ユーザー』のインスタンスでなければならない、私は以下のようなモデルがあります:私は、コードとデータを挿入しようとすると(ジャンゴ)は「U'1' 」を割り当てることができません: 『StaffProfile.userは』

class StaffProfile(models.Model): 
    user = models.ForeignKey(User) 
    maas = models.FloatField() 
    maas_gunu = models.CharField(max_length=5) 

を以下のように:

staffprofilesay = StaffProfile.objects.filter(user = user_id).count() 

    if staffprofilesay > 0: 
     staffprofile = StaffProfile.objects.get(user = user_id) 
    else:  
     staffprofile = StaffProfile() 

    staffprofile.user = user_id 
    staffprofile.maas = calisan_formu.cleaned_data["maas"] 
    staffprofile.maas_gunu = calisan_formu.cleaned_data["maas_gunu"] 
    staffprofile.save() 

私はこのようなエラーが出る:

Cannot assign "u'1'": "StaffProfile.user" must be a "User" instance. 

は何私が行うことになっていますか?

PS:私はあなたが、例えばユーザーオブジェクトを割り当てる必要がありますDjangoのUserモデル

答えて

15

を使用しています

from django.contrib.auth.models import User 
user = User.objects.get(id=user_id) 

staffprofile.user = user 
+0

manありがとうございます:) –

+2

私は同様の問題があります(ただし、auth_userインスタンスではありません)。私はid(長い)があるが、それをフィールドに割り当てることはできない。だから、私はそれを割り当てることができる前に、オプションを取得するためにデータベースに往復する必要がありますか?データベース上の外部キーのポイントは何ですか? IDが有効かどうかを確認して調べる予定です。このための回避策はありますか?私は本当に私がすでに持っているIDを取得するためにオプションを取得するために往復する必要が本当にありますか? –

4

userUserモデルではなく、(あなたがそれを渡しているものです)Unicodeオブジェクトのインスタンスである必要があります。

関連する問題