2016-12-30 5 views
0

私はDjangoを初めて使用しています。今はしばらく作業に失敗しています。私はDjangoのドキュメントを検索しましたが、いくつかの質問がありましたが、私のために何も動いていません。モデルは、特定のプロジェクトへのアクセスを要求するユーザーのために使用されdjangoのユーザーをフィルターに掛けて既存のグループに追加します

class AddUser(models.Model): 
    owner = models.ForeignKey(User) 
    title = models.CharField(max_length=20, default='', blank=True) 
    user_request = models.CharField(max_length=30, default='') 
    answer = models.BooleanField(default=False) 

は、AddUser:

def user_accept(request): 
     if request.method == 'POST': 
     username = AddUser.objects.filter(owner=request.user).get().user_request 
     group_name = Projects.objects.filter(user=request.user).get().group_url 
     group = Group.objects.get(name=group_name) 
     group.user_set.add(username) 
     delete_user = AddUser.objects.filter(user_request=username) 
     delete_user.delete() 

はここに私のモデルである:

は、ここに私の見解です。したがって、ユーザーがプロジェクトをリクエストすると、データはAddUserモデルに保存されます。 ユーザーフィールドはプロジェクトの「所有者」に設定されているので、すべてのプロジェクトを適切な所有者でフィルタリングできます。

オーナーがリクエストを受け入れることにした場合、私のuser_acceptビューが実行されます。

invalid literal for int() with base 10: 'myusername' 

私はint型(ユーザー名)とユーザー名を変換しようとしたユーザ名のuser_idは何もを取得しようとしている:ここでの問題は、私はグループにユーザー名を追加しようとすると、私は次のエラーを取得する、ありますうまくいくようです...私は私のオブジェクトをフィルタリングする方法を何か持っていると思うが、私はそれを取得しません。

お時間をいただきありがとうございます。幸せな新年をお過ごしください!

+0

グループテーブルのuser_setはどのタイプのフィールドですか? –

答えて

1

group.user_set.addのユーザーを追加するには、ユーザーIDまたはユーザーオブジェクト自体が必要です。

user = User.objects.get(username=user_request) 
group.user_set.add(user) 

をかOneToOneフィールドまたはForeignKeyのを経由して要求者のIDを保存するために、あなたのAddUserモデルを変更する:あなたは、ユーザー名からユーザーオブジェクトを取得することができますいずれか

は、ユーザ名はユニークであり、それを追加提供しましたユーザー名の代わりに。

+0

こんにちは!出来た!!ありがとう、私の愚かな、決して考えなかった...ありがとう! – MB95

0

Djangoのデフォルトグループでは、ユーザー名を追加できません。 ユーザーオブジェクトを追加する必要があります。 試用

add_user_object = AddUser.objects.filter(owner=request.user).get() 
group.user_set.add(add_user_object.owner) 
関連する問題