Django:CharField删除默认-------选择

时间:2015-10-01 06:07:20

标签: python html django

在我的 models.py 中,我有以下CharField

class Method1(models.Model):
    inputfile_param     = models.FileField()
    clustering_method_param     = models.CharField(max_length=20,
         default='ward', blank=True, choices=(
         ('complete', 'Complete linkage'),
         ('average','Average linkage'),
         ('ward','Ward'),))

如何从CharField中删除默认的---------选项? 我尝试插入empty_label=None但无效。

我无法移除blank=True,因为它会阻止 FileField()无法捕获上传的文件。

我的 forms.py 如下所示:

class Method1ClusteringForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(Method1ClusteringForm, self).__init__(*args, **kwargs)

2 个答案:

答案 0 :(得分:2)

我发现this也可能是你的解决方案。

尝试:

from django.forms import ModelForm
from django import forms as forms

class Method1ClusteringForm(ModelForm):
    clustering_method_param = forms.forms.TypedChoiceField( 
                    required=True,
                    initial = 'ward',
                    choices = (
                        ('complete', 'Complete linkage'),
                        ('average','Average linkage'),
                        ('ward','Ward'),)
                    )    
    class Meta:
        model = Method1
        fields = ('inputfile_param', 'clustering_method_param',)

答案 1 :(得分:0)

您必须在字段定义中删除blank=True。见here