2012-09-15 3 views
0

을 봅니다. 따라서 forms.py에 ManageUserForm이 있습니다. 올바르게 렌더링되지만 편집하려는 사용자의 올바른 데이터를 가져 오지 않습니다. 템플릿에서 Django 템플릿에서 요청하지 않은 사용자 정보를 업데이트하고

, 나는이 템플릿은 사용자 프로필에있는 개체의 목록을 렌더링 제대로

{% for tenants in tenants %} 
{{ tenants.user }} {{ tenants.type }} 
{% endfor %} 

작동 루프를 가지고있다. 그리고 그것을 올바르게합니다. 내가 직면 한 도전 과제는 "tenants.type"속성을 업데이트하는 것입니다. 다시 말하지만, 유형이 올바르게 표시되지만이 템플릿 페이지에서 업데이트하는 방법을 모르겠습니다.

#views.py 

def manage_users(request): 
tenants = UserProfile.objects.all() 

form = ManageUserForm(request.POST or None) 

if form.is_valid(): 
    update = form.save(commit=False) 
    update.save() 

return render_to_response('manage_users.html', locals(), context_instance=RequestContext(request)) 

#forms.py 

class ManageUserForm(forms.ModelForm): 
    class Meta: 
     model = UserProfile 
     exclude = ('full_name', 'user',) 

는`내가 인스턴스를 호출 할 필요가 있다고 생각하지만 비 요청 사용자를 위해 그렇게 여전히 템플릿의 패턴을 따라하는 방법을 모른다. 템플릿은 기본적으로 요청 사용자 (스태프 사용자)가 목록의 데이터를 변경할 수있는 사용자 목록입니다.

도움 주셔서 감사합니다.

+0

한 명의 사용자에 대해 하나의 양식이 있습니다. 이 폼을 사용하여 여러 테넌트를 편집하려면'FormSet'이 필요합니다. 객체 편집 및 표시는 완전히 다른 짐승입니다. 그 (것)들을 혼동하지 말라. 'formset = modelformset_factory (form = ManageUserForm, queryset = tenants)'google-force가 여러분과 함께하기를 바랍니다. –

+0

정말 대단합니다. 나는 그것을 밖으로 시도 할 것이다. 당신의 도움을 주셔서 감사합니다. – jmitchel3

+0

나는 그것을 작동 시키게된다. 그것이 렌더링하는 것을 보아라. [link] (http://tenantpark.com/manageusers/) ... 그것은 사용자와 폼 모델을 상관하지 않는다는 것을주의하라. 그것을 어떻게 바꾸는 지 알고 있습니까? 양식을 전환하려면 사용자 이름을 클릭하십시오. – jmitchel3

답변

1

한 명의 사용자에 대해 하나의 양식이 있습니다. 해당 양식을 사용하여 여러 테넌트를 편집하려면 FormSet이 필요합니다. 객체 편집 및 표시는 완전히 다른 짐승입니다. 그 (것)들을 혼동하지 말라.

formset = modelformset_factory(form=ManageUserForm, queryset=tenants) 

는 업데이트 :
당신은 하나 {{ form.management_form }}<form> 태그의 {% for form in formset %}{{ form }}{% endfor %}의 나머지 부분이 있어야합니다. 모든 양식은 formset의 첫 번째 양식입니다.

템플리트 객체 대신 formset 양식을 반복하기 위해 템플리트 루프를 다시 작성해야합니다. 당신은 아마 modelformset_factory 함수에 extra=0 매개 변수에 전달하지 않았기 때문에 당신은 별도의 양식을 가지고
: 세입자 객체는 {{ form.instance }}


업데이트 2를 통해 액세스 할 수 있습니다. 이 양식은 일반적으로 데이터를 추가/편집하는 데 사용됩니다. 따라서 N 개의 빈 양식을 추가하여 작성할 수 있습니다.

+0

굉장합니다. 다시 Yuji 감사합니다. 너는 매우 도움이되었다. – jmitchel3

관련 문제