私のモデルではオプションのURLFieldがあります。私はModelFormでもオプションにしました。問題は、フォームに絶対URLを生成させたいだけだということです。私はURLFieldが自動的にそうしていると思っていましたが、現在は私のために働いていません。Django - 絶対URLと相対URLの両方でURLFieldが発生する
問題を解決するために、私はモデルのsave()メソッドをオーバーライドすることに決めました。私はmodelformフィールドのclean_field()メソッドをオーバーライドしたいと思っていました。ただし、 "required = False"を指定してフォームフィールドにclean_fieldメソッドを設定することはできないように見えます。
def save(self,*args, **kwargs):
if self.url:
if not self.url.startswith('http://'):
self.url='http://' + self.url
super(Post, self).save(*args, **kwargs)
ここに何か不足していますか?これは完全に受け入れられますか?
オプションのフォームフィールドを検証できることは間違いありません。その部分はちょっと聞こえません。 –
ここに遅れていますが、朝にコードを掲載します。私はclean_url()を削除したときに解決した問題を抱えていました。それがあると、フォームフィールドが突然必要となりました。削除すると、required = Falseに戻りました。少なくとも、そうするように見えました。 – Ben