プロジェクトの基本的なCMSシステムをまとめ、ナビゲーションバーで作成したページを注文できるように注文システムを追加します。残念ながら、私が書いたカスタムバリデーターは少し攻撃的で、ページを編集するとエラーが発生します。これは、正しい順序がデータベースにすでに存在しているためです。
フォームのモデルは次のとおりです。
class Page(models.Model):
page_name = models.CharField(max_length=100)
page_content = models.CharField(max_length=16777000)
link = models.URLField(blank=True)
order = models.IntegerField()
カスタムバリデーター:
def clean_order(self):
data = self.cleaned_data['order']
pg = Page.objects.filter(order=data)
if pg.count() > 0:
raise forms.ValidationError("This order number already exists. Use another.")
return data
更新を実行するときに、新しい注文がすでに存在するが、現在のPageオブジェクトではない場合にのみ、カスタムバリデーターでエラーを発生させる方法はありますか?何かのようなもの:
pg = Page.objects.filter(order=data).filter(pk!=editpagepk)
ありがとう!