2013-06-26 6 views
1

을 모델링하는 것은 내가 다음장고는 다음과 같은 형식

class OrgStaff(BaseModel): 
    user = models.OneToOneField(User) 
    member_type = models.BooleanField(help_text="1. Read/Write 0. Read Only") 
    task = models.ForeignKey(ToDos, null=True, blank=True) 
    org = models.ForeignKey(Org) 
    # TODO Add possible activities 

    def __unicode__(self): 
     return self.user.username 

이 모델은 형태가

class AddStaffForm(ModelForm): 

    class Meta: 
     model = OrgStaff 
     exclude = (
      'task', 
      'org' 
      ) 

파일입니다 그리고 이것은 내가보기를 처리하는 방법이다

if request.POST and form.is_valid(): 
    form.save() 
    ret_url = reverse("some_view", kwargs={ 
      'var':var,}) 
    return redirect(ret_url) 
return render(request, "form.html", {"form":form}) 

이 양식은 드롭 다운을 렌더링하여 데이터베이스의 모든 사용자와 라디오 박스를 표시합니다.

실제로 양식을 작성하여 새로운 사용자 (이름, 성, 사용자 이름, 전자 메일 및 암호)를 추가 한 다음 abvoe AddStaffForm에서 나머지 필드를 추가 할 수 있습니다.

기본적으로 질문은 기본적으로 userform 필드를 addstaffform에 추가하는 것입니다. 그런 다음보기로 처리하십시오.

할 수 있습니까, 아니면 수동으로해야합니까?

위의 모델 양식을 확장하여 먼저 사용자 세부 사항을 채우고 유형을 할당 할 수 있습니까 ??

알려 덕분 주시기 바랍니다.

+0

유형별로 'member_type'을 의미하면'아니오 ', 다른 모델은'아니오 '입니다. 당신은 그것을 위해 몇 가지 자바 스크립트를해야 ​​할 것입니다. 이 같은 : http://jsfiddle.net/VSRKu/ –

+0

업데이트, 내 기본 질문은 위의 modelform에 사용자 (성, 성, 전자 메일, 사용자 이름, 암호 등) 필드를 추가하고 자동으로 처리 할 수있다. 데이터를 한 번에 볼 수 있습니다. 기본적으로 사용자 인 OrgStaff가 생성됩니다. – user2499817

답변

4

를 사용하여 두 개의 분리 된 형태 - UserForm, models.User & AddStaffForm에서 만든하지만 AddStaffForm에서 '사용자'필드를 제외합니다. 둘 모두에 대해 하나의 제출 버튼 만 사용하십시오.

그래서 템플릿은 볼과 같은 것입니다 : 다음과 같은 순서로 독립적으로 사용자가 양식을 제출 그런

<form method="post" action="/path/to/wherever"> 
    {{ user_form }} 
    {{ add_staff_form }} 
    <button>Submit</button> 
</form> 

, 공정 각 양식 : 첫 번째

  1. 프로세스 사용자 양식 및 저장 user 인스턴스를 db에 대해 양식을 작성하십시오. user_form.is_valid()True 인 경우, 당신은 단순히 user = user_form.save()

  2. 다음, 프로세스 AddStaffForm을 수행하여이 작업을 수행 할 수 있지만 그것은 단지 아직 user 필드의 값을 포함하지 않기 때문에 commit=False (즉 staff = add_staff_form.save(commit=False)를 전달합니다. staff.user = user를 사용하여 사용자 값을 제공하고 다음 staff.save()

가 제공하는 직원 형태의 다른 모든 필드를 제공 (즉 add_staff_form.is_valid()이 새로운 staff 생성 초래한다 그렇지 True이다 I db에 쓰여진 문장.

희망이 도움이됩니다. :)

+1

답변을 주셔서 감사합니다, http://stackoverflow.com/questions/1727564/how-to-create-a-userprofile-form-in-django-with-first-name-last-name-modificati 비슷한 방식으로 생각했다. – user2499817