2014-03-05 1 views
1

양식 필드에 자리 표시자를 추가동적으로 내가 몇 가지 일반적인 필드와 장고 양식이

<label for="id_first_name">First Name: </label>{{ form.first_name }} 
    <label for="id_last_name">Last Name: </label>{{ form.last_name }} 
    <p><label for="id_email">Email: </label>{{ form.email }} 
    <p><label for="id_phone">Phone: </label>{{ form.phone }} 
    <p><label for="id_password1">Password: </label>{{ form.password1 }} 
    <p><label for="id_password2">Password Confirmation: </label>{{ form.password2 }} 
    <p><input type="submit" value="Sign up" /></p> 
:

first_name = forms.CharField(label=_("First Name")) 
last_name = forms.CharField(label=_("Last Name")) 
phone = USPhoneNumberField(label=_("Phone Number")) 
email = forms.EmailField() 
password1 = forms.CharField(label=_("Password"), 
    widget=forms.PasswordInput) 
password2 = forms.CharField(label=_("Password confirmation"), 
    widget=forms.PasswordInput, 
    help_text=_("Enter the same password as above, for verification.")) 

사이트에서 양식을 렌더링, 내가 만들고 다음 코드를 사용하여 필드

문제는 특정 필드 (전자 메일, 이름, 성)에 대한 자리 표시자를 원하지만 "전자 메일 주소", "이름"등과 같은 일반적인 자리 표시 자일 수는 없습니다. 애플 리케이션의 비즈니스 로직, 나는 그들이보기의 맥락에서 온 실제 이름과 이메일 주소가되고 싶지만 사용자가 최종적으로 변경하기 전에 변경 권한을 가지고 있음을 나타냅니다.

나는 폼의 편리함을 이용하고 싶다.하지만 이전에 장고 양식을 사용하지 않고 일반 HTML 태그를 사용하지 않고 자리 표시 자 속성을 동적으로 생성하는 쉬운 방법은없는 것처럼 보입니다. 이견있는 사람?

당신은 어떤 양식 필드를 추가 할 수 있습니다
+0

당신이 더 수단 "나는 그들이보기의 컨텍스트에서 오는 실제 이름과 이메일 주소가되고 싶어요"어떻게 설명 할 수 있습니까? 당신이 원하는 것의 예가 가장 좋을 것입니다. –

답변

2

동적 필드를 형성하는 자리를 설정할 수 있습니다

def someview(request): 
    form = SomeForm(..) 

    if some_condition: 
     form.fields['email'].widget.attrs['placeholder'] = instance.email 
1

이 같은 형태의 초기화 중에 동적으로 속성 :

class MyForm(forms.Form): 
    field = forms.TextField() 
    def __init__(self, *args, **kwargs): 
     form = super(MyForm, self).__init__(*args, **kwargs) 
     form.fields['field'].widget.attrs['placeholder']='custom_placeholder' 
그러나 귀하의 설명에 따라, 당신은 자리가 필요하거나 양식 필드가 미리 입력 할 싶어 확인입니다

사용자가 변경하지 않는 한 서버에 제출되는 특정 값.

관련 문제