2016-12-30 1 views
0

저는 장고를 처음 사용하고 있습니다. 잠시 동안 작업에 실패했습니다. 장고 문서를 검색하고 여기 몇 가지 질문을하지만 거기에 아무것도 나를 위해 일하고있다. 모델은 특정 프로젝트에 대한 액세스를 요청하는 사용자에 대해 사용됩니다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보기가 실행됩니다. 여기서 문제는, 내가이 그룹에 이름을 추가 할 때, 나는 다음과 같은 오류 얻을 : 나는 INT (사용자 이름)와 사용자 이름을 변환 할 시도하고 사용자 이름의 USER_ID하지만 아무것도를 얻기 위해 노력했다

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

을 작동하는 것 같습니다 ... 나는 그것이 내 물건을 걸러내는 방법을해야한다고 생각하지만 나는 그것을 얻지 못합니다.

시간 내 주셔서 감사 드리며 새해 복 많이 받으십시오.

+0

그룹 테이블에서 user_set 유형의 필드는 무엇입니까? –

답변

1

group.user_set.add 인 사용자를 추가하려면 사용자 ID 또는 사용자 개체 자체가 필요합니다.

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

을 아니면 OneToOne 필드 또는 외래 키를 통해 요청자의 ID를 저장하기 AddUser 모델을 변경 : 당신은 사용자 이름에서 사용자 개체를 검색 할 수 있습니다

는 사용자 이름이 고유하고 추가 제공 사용자 이름 대신.

+0

안녕하세요! 그것은 일했다!! 고마워, 내 바보 같은, 그 생각 못해 ... 고마워! – MB95

0

장고 기본 그룹에서는 사용자 이름을 추가 할 수 없습니다. 사용자 개체를 추가해야합니다. 시도

add_user_object = AddUser.objects.filter(owner=request.user).get() 
group.user_set.add(add_user_object.owner) 
관련 문제