ModelChoiceField を使用してRadio ボタンを画面表示したところ、
nameが、{Model名称} Object と画面表示され表示名称を変更できず、
変更方法を調べておりました。
参考サイト
- ModelFormでForeignKeyのModelChoiceFieldをカスタマイズ - ドキッ!はてなブログに移転しました!
- カスタマイズ(微笑) - ドキッ!はてなブログに移転しました!
- DjangoのFormを活用する (1) ModelChoiceField:株式会社サブスレッド
変更方法
- forms.pyの記述抜粋
from analyze_metrics_view.models import ToolChoice
tool_choice = forms.ModelChoiceField(
label='Category',
queryset=ToolChoice.objects.all(),
to_field_name='value',
widget=forms.RadioSelect(
attrs={'onchange': 'Myjs.changeCategoryChoices(this.value,' + json.dumps(
get_category_choicese_relations()) + ');'}),
required=True,
empty_label=None,
)
ToolChoiceというModelがあるとして、models.pyの記述
from django.db import models
class ToolChoice(models.Model):
value = models.CharField(max_length=2)
name = models.CharField(max_length=30)
def __unicode__(self):
return self.name
def __str__(self):
return self.name
python2では__unicode__、
python3では、__str__ で、
modelの文字列表現を指定することができて、ラベル名に反映されます。
別の方法もあるっぽいですが、とりあえずは今回はこれで事足りました。
以上です。
コメント