ユーザのステータスで選択肢のラベルを変更したい。djangoユーザー状態によって__str__ラベルを変更する方法は?
私のモデルは
class BookCategory(model):
label_1 = char
label_2 = char
def __unicode__(self):
#something here?
class Book(model):
name = char
categoey = models.Foreignkey(BookCategory)
BookCategoryは、新しい本のためにCREATEVIEWで使用され、そのページはのModelForm、book.catgoryためbook.nameと選択肢のためのTextInputを持っています。
ユーザタイプ== 1ならば私の目標は
です:私は "__unicode__を" 知っている
=>表示カテゴリのlabel_2
:
=>表示カテゴリのlabel_1
場合、ユーザタイプ== 2インスタンスの値を表示することができますが、ユーザーの状態によってそのフィールドを変更することを知りたいと思います。
誰もが解決策を知っていますか?
add: my viewとmodelformはとてもシンプルです。
ビューは
class CreateBook(CreateView):
template_name = "template.html"
model = Book
form_class = BookForm
success_url = "success_url"
def form_valid(self, form):
if form.is_valid():
form.save()
で、フォームには2つのカスタムモデルフィールドを作成するために
class LessonForm(ModelForm):
class Meta:
model = Book
fields = ('name',
'category',
)
widgets = {
'name': forms.Textarea(attrs={'class': 'text_box'}),
'category': forms.Textinput(attrs={'class': 'select_box'}),
}
'__unicode__'メソッドでは、' request'へのアクセス権がないので、これを行うことはできません。あなたのビューとフォームを表示する場合は、あなたが望むことをするためにそれらを変更することができるかもしれません。 – Alasdair
@Alasdairご助言ありがとうございます!私は私のポストに私のビューとフォームを追加します。彼らに「要求」を渡す方法を教えてくれませんか? – Ryae