폼의 모든 필드에는 이미 help_text
이 포함되어 있지만 Form 클래스의 필드에 매개 변수로 선언해야합니다.
예를 들어, 개인적으로
class SomeForm(forms.Form):
some_field1 = forms.CharField(verbose_name="Some Field 1", max_length=100, help_text="Please the first field.")
some_field2 = forms.CharField(verbose_name="Some Field 2", max_length=100, help_text="Please the second field.")
, 나는 데이터베이스가 아닌 필드에 연결된 형태로있는의 혜택을 볼 수 없습니다.
편집 :
그래서 도움말 텍스트를 무시할 수 있습니다. 먼저 폼에서 help_text를 재정의하려는 각 양식에 대한 사전이 있다고 가정 해 보겠습니다.
my_form = SomeForm()
for field_name, new_help_text in my_form_override_help_text_dict.items():
my_form.fields[field_name].help_text = new_help_text
를 한 다음 렌더링하기 전에 컨텍스트에 my_form을 추가 컨텍스트를 렌더링하기 전에 다음과 같은 사전과 양식을 재 처리 할 수있다.
이제 도움말 텍스트를 저장하려는 위치와 방법을 선택하십시오. 예를 들면, 세 개의 문자 필드 (모델 이름, 필드 이름, 도움말 텍스트)와 ModelFieldHelp을 만드는 솔루션은 귀하의 모든 모델이 프로세스를 자동화하기 위해 지금은 이해 할 수
class ModelHelpField(models.Model):
model_name = CharField(max_length=50)
field_name = CharField(max_length=50)
new_help_text = CharField(max_length=50)
field_help_qs= ModelHelpField.objects.filter(model_name='SomeModel')
my_form_override_help_text_dict = dict([(mfh.field_name, mfh.new_help_text) for mfh in field_help_qs])
같은 것을 필요로 작동합니다 (정의되지 않은 경우) 자동으로 만들어지고 초기화 된 후 현재 도움말 텍스트로 자체를 업데이트하는 함수를 양식 또는 모델에 정의하여 양식을 작성한 경우 ...
포인터를 보내 주셔서 감사합니다. 하나. 데이터베이스에서 도움말 텍스트를 유지하는 이점은 도움말 텍스트 작성 담당자가 해당 텍스트를 변경하려는 경우 소스를 변경할 필요가 없다는 것입니다. 그 텍스트가 바뀌어도 출시를해야하지도 않습니다. –
그 말이 맞는 것 같지만 입력 필드가 수정되지 않습니다 (예 : 이름을 편집 할 수 없음, 길이를 편집 할 수 없음, 순서를 편집 할 수 없음). 도움말을 동적으로 편집하는 것이 적절하지 않은지 잘 모르겠습니다. 본문. 어쩌면 템플릿을 편집하게할까요? 그러나 어쨌든 그것은 hackish 방법으로 수행 될 수 있습니다. 나는 곧 편집 할 것이다. –
동적 테이블을 만들기 위해 필드를 사용하는 대신 데이터베이스에 저장하는 것이 좋습니다. – Logic1