Bazı seçenekler içeren bir seçim alanı oluşturmak için choiceField
kullanıyorum. Böyle bir şey:Django'da dinamik seçim alanını kullanma
forms.py
class NewForm(forms.Form):
title = forms.CharField(max_length=69)
parent = forms.ChoiceField(choices = CHOICE)
Ama (ChoiceField
tarafından gereklidir) önceden tanımlanmış bir başlığın kalmadan seçenekleri oluşturmak isterler. Temel olarak, her bir kullanıcıya göre bazı seçenek etiketlerini doldurmak için request.user öğesine erişmem gerekiyor, ancak formların formlarında istek kullanılmasının herhangi bir yolu olup olmadığını bilmiyorum.Form.
alternatif aracılığıyla NewForm
örneğini önceden doldurmak için olacaktır:
views.py
form = NewForm(initial={'choices': my_actual_choices})
ama NewForm ve my_actual_choices yine de iş görünmüyor oluşturmak için bir kukla SEÇİM eklemek zorunda.
Bunu çözmenin üçüncü bir yolu, bir ChoiceField alt sınıfı oluşturmak ve save()
yeniden tanımlamaktır ancak bunu yapmak için nasıl gideceğimi bilmiyorum.
Evet, onlar olur. Teşekkürler –
'super()' önce gelmelidir. – Surya
Kurucudan önce super() 'yi gördüğümde kafam karıştı, ama denediğimde bir hata aldım: isim 'self' tanımlanmadı. 'super()' kurucuda olmalı. Düzenleme geçmişine baktığımda, Surya'nın ne anlama geldiğini düşünüyorum, çünkü super() 'başlangıçta kurucunun son satırı. – user2233706