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
の文字列表現を指定することができて、ラベル名に反映されます。
別の方法もあるっぽいですが、とりあえずは今回はこれで事足りました。
以上です。
コメント