0

djangoフォームでは、form.htmlをカスタマイズせずにフォームクラスにアンカータグを追加する方法

フォーム.py

class HealthCheckerForm(PortalModelForm):
    name = forms.CharField(max_length=128,required = False ,help_text="Enter Name", label='Name')
    description = forms.CharField(max_length=128, required = False, label='desc*')

    age = forms.CharField(max_length=128,required = False ,help_text="Enter age", label='age')
    group = forms.CharField(max_length=128, required = False, label='group*')

form.html

{% for field in form %}
    <div class="fieldWrapper">
        <div class="fieldInfo">
            {{ field.label_tag }}{{ field }}
            <span class="errorList">{{ field.errors|striptags}}</span>
        </div>
    </div>
{% endfor %}

form.html をカスタマイズせずにボタンまたはアンカー タグを追加する方法

前もって感謝します..

4

1 に答える 1

1

あなたの質問が理解できたと思います。今日遭遇した問題に似ているようです。

基本的に、独自のウィジェットとフィールドを作成できます。

from django.utils.safestring import mark_safe

class AnchorOnlyWidget(forms.Widget):
    def render(self, name, value, attrs):
        final_attrs = self.build_attrs(attrs, name=name)
        if hasattr(self, 'initial'):
            value = self.initial
        return mark_safe("<a href='%s' %s>%s</a>" %
            (value, flatatt(final_attrs), value))

    def _has_changed(self, initial, data):
        return False

class AnchorOnlyField(forms.FileField):
    widget = AnchorOnlyWidget
    def __init__(self, widget=None, label=None, initial=None, help_text=None):
        forms.Field.__init__(self, label=label, initial=initial,
            help_text=help_text, widget=widget)

    def clean(self, value, initial):
        self.widget.initial = initial
        return initial

そして、それをフォームに追加します:

class HealthCheckerForm(PortalModelForm):
    youranchor = AnchorOnlyField(help_text="the help")
    ...
于 2013-04-11T18:56:38.483 に答える