2009-07-22 13 views
1

私はForeignkeyまたはMany2ManyFieldsのクエリセットをフィルタリングできると理解していますが、どのように単純なSelectウィジェット(Select Tag)であるCharField。例えばCharFieldにchoices属性(したがってSelect Field)を持つModelFormの選択肢をフィルタリングするには

PRODUCT_STATUS = (
        ("unapproved", "Unapproved"), 
        ("approved", "Listed"), 
        #("Backorder","Backorder"), 
        #("oos","Out of Stock"), 
        #("preorder","Preorder"), 
        ("userdisabled", "User Disabled"), 
        ("disapproved", "Disapproved by admin"), 
       ) 

とフィールド:

o_status = models.CharField(max_length=100, choices=PRODUCT_STATUS, verbose_name="Product Status", default="approved") 

は、私はちょうど "承認" にそれを制限したいし、代わりにどのようなIである(完全な配列を示す "userdisabled" とし管理者に表示したい)、どうすればいいですか?

ありがとうございます!

答えて

0
class YourModelForm(forms.ModelForm): 
    def __init__(self, *args, **kwargs): 
     super(YourModelForm, self).__init__(*args, **kwargs) 
     self.fields['your_field'].choices = (('a', 'A'), ('b', 'B')) 

    class Meta: 
     model = YourModel 

これはForeignKeyまたはM2M属性のクエリーセットをオーバーライドするにはあまり変わらないと思います。

PS:irc.freenode.netの#djangoから感謝祭

関連する問題