2012-10-11 6 views
1

UserProfile 모델을 추가/편집하는 양식 아래에 User 필드를 표시하는 방법이 있습니까? 나는이 같은 기본 장고 사용자 모델을 확장하고있다 :Django : 사용자 모델 확장 - UserProfile의 인라인 사용자 필드

class UserProfile(models.Model): 
    user = models.OneToOneField(User, unique=True) 
    about = models.TextField(blank=True) 

가 나는 만드는 것이 가능하다는 것을 알고

class UserProfileInlineAdmin(admin.TabularInline): 

다음 사용자 ModelAdmin이 인라인하지만 반대의 효과를 달성하고자, 역 인라인과 같은 것으로, 관계를 정의하는 모델의 페이지 (UserProfile)에서 OneToOne Relationship (User)이 가리키는 모델의 필드를 표시합니다. 관리자 또는 사용자 정의보기/템플릿에 있을지는 상관하지 않습니다. 나는 이것을 달성하는 방법을 알 필요가있다.

저는 ModelForms와 Formsets에 어려움을 겪어 왔습니다. 그 답은 어딘가에 있지만, 장고에 대한 저의 작은 경험으로는 아직 해결책을 찾지 못했습니다. 작은 예제가 정말 도움이 될 것입니다!

+0

사용자 및 UserProfile을 동시에 만들 수있는 모든 관련 필드가있는 하나의 페이지를 제공하겠습니까? – dokkaebi

+0

바로! 동시에 모든 필드를 추가/편집하고 추가 할 경우 적절한 인스턴스를 만들고 싶습니다 –

답변

2

이것은 이전에 제기되었습니다.

내가 가장 좋아하는 해결책이라고 생각하는 블로그 게시물이 있습니다. 요점은 prefix kwarg의 템플릿 만들기 사용 하나 <form> 태그에 두 ModelForms를 사용하고 렌더링하는 것입니다

http://collingrady.wordpress.com/2008/02/18/editing-multiple-objects-in-django-with-newforms/

는 여기에 내가 조금 덜 좋아하는 또 다른 방법이다, 또한 유효합니다. 그들은 서로 다른 행동으로, 페이지에 두 개의 분리 된 <form>의를 사용하여 두 개의 버튼을 제출

업데이트

How to create a UserProfile form in Django with first_name, last_name modifications?

:

Proper way to handle multiple forms on one page in Django

이 하나 개의 이야기 더 구체적으로는 약 사용자 및 UserProfiles을

여기 내가 결국

으로 끝났습니다.
+0

와우! 정말 철저한 대답입니다. 난 이미 마지막 링크에서 귀하의 추천을 시도했지만 추가/편집 페이지를로드하여 DoesNotExist 예외가있어 @ Natim의 대답과 또한이 대화에서 wunki의 답변을 시도 할 때 DoesNotExist 예외 시도. 다른 두 링크의 결과를보고하겠습니다. 고마워요! –

+0

@JackSparrow가 작업 코드 샘플 – dokkaebi

+0

으로 업데이트되었습니다. 고맙습니다. 나는 세 가지 질문이있다. 내 urls.py에 뭔가를 추가해야합니까 (아마 맞습니까?)? 'UserCreationForm'은 무엇입니까? (아마도 User ... ModelForm ...)? 'UserCreateView'를 인스턴스화해야합니까? –

관련 문제