を必要としませんか?のDjangoのModelFormは、私はこのような形式を持つフィールド
class My_Class(models.Model):
address = models.CharField()
フォーム::
を必要としませんか?のDjangoのModelFormは、私はこのような形式を持つフィールド
class My_Class(models.Model):
address = models.CharField()
フォーム::
は、あなたのモデルは、このようなものです推測
class My_Form(ModelForm):
address = forms.CharField(required=False)
class Meta:
model = My_Class
fields = ('first_name', 'last_name' , 'address')
外部キーフィールドはどうですか? – digz6666
ModelChoiceFieldを使用します。したがって、フィールド定義が 'abc = models.ForeignKey(Abc)'であれば、 'abc = forms.ModelChoiceField(queryset = Abc.objects.all()、required = False)'と書くことができます。 ' –
'from django import forms' –
あなたが追加する必要があります:
コメントからAnentropicのソリューション@address = forms.CharField(required=False, blank=True, null=True)
空白とヌル属性はModelFormsには使用されません –
これはフォームフィールドではなく_model_フィールドになければなりません。 'null = True、blank = True'を指定すると、ModelFormフィールドは' required = False'になります。 – Anentropic
class My_Form(forms.ModelForm):
class Meta:
model = My_Class
fields = ('first_name', 'last_name' , 'address')
def __init__(self, *args, **kwargs):
super(My_Form, self).__init__(*args, **kwargs)
self.fields['address'].required = False
aksharの答えは良く見えますが、このメソッドはhelp_textとlabelのようなものを設定する必要がありません。 – Blackeagle52
このメソッドは、モデルレベルでFKとして定義されているフィールドを処理する場合に特に役立ちます。 aksharの方法では、 'queryset'属性を設定する必要があります。 – PritishC
on @Atma's answerで働いた私。そして私はそれも最高のものだと思います。
彼のコメント:
ヌル= Trueの場合、空白= Trueの場合のModelFormフィールドが必要とされるようになります= Falseの
私はちょうど私のUserProfile
クラスで私の多対多の場でそれを設定し、それ完璧に働いた。私UserProfile
クラスは次のようになります
(friends
フィールドに注意してください):
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
friends = models.ManyToManyField('self', null=True, blank=True)
は、私はまた、あなたが同じことを行うので、これは最も美しい解決策だと思い、True
、天候にnull
とblank
を置きますあなたは単純なchar
フィールドを持っているか、私の持っているようにManyToMany
フィールドを持っています。
もう一度、ありがとうございます@Anentropic。 :)
P.S. 私はコメントできませんでした(私は50未満の評判を持っています)ので、私は彼のコメントがより多くの露出を必要としていると思うので、これを投稿として書きました。
P.P.S. この回答がお役に立てれば、彼のコメントをアップしてください。
乾杯:
モデルの外観はどうなっていますか? – Ngenator