2015-12-04 7 views
6

Używam Flask-Admin 2.1 z Pythonem 2.7.6.Jak mogę uniknąć ostrzeżenia od Flask-Admin 2.1 "UserWarning: Brakuje pól w zestawie reguł"?

Jedna z moich klas modelu Flask-Admin dziedziczy po flask.ext.admin.contrib.sqla.ModelView i zastępuje form_rules.

Kiedy uruchomić mój wniosek, to wyświetlane jest ostrzeżenie: "UserWarning: Fields missing from ruleset"

Ostrzeżenie jest dokładne: Istnieją pola w moim modelu, które nie są zawarte w zestawie reguł. Ale to jest zgodne z projektem. Nie chcę, aby te pola były wyświetlane, gdy użytkownicy tworzą lub edytują instancje tego modelu.

już przeczytać: https://github.com/flask-admin/flask-admin/pull/815#issuecomment-81963865

Jak mogę pominąć ostrzeżenie?

+2

Oto dlaczego tam ostrzeżenie - jeśli pole jest w nie w zestaw reguł, ale w formularzu, WTForms będzie zawsze usuwać dowolną wartość wcześniej. Tak działają przeglądarki - jeśli wartość nie została wysłana, jest pusta. Jeśli więc nie chcesz, aby pole było obecne w formularzu, usuń je z formularza. Jeśli chcesz go w formie z dowolnego powodu, ale nie chcesz tego pokazywać - niech to będzie ukryte. – Joes

Odpowiedz

9

Można wyłączyć ostrzeżenie, gdy widok jest dodawany za pomocą tego fragmentu z przybranym nazwiskiem UserView:

import warnings 

with warnings.catch_warnings(): 
    warnings.filterwarnings('ignore', 'Fields missing from ruleset', UserWarning) 
    admin.add_view(UserView()) 

referencyjny: https://docs.python.org/2/library/warnings.html#warnings.filterwarnings

+2

Świetna odpowiedź! Poprawiłem ją nieznacznie, aby uchwycić tylko jedno ostrzeżenie, którego dotyczyłem, zmieniając ostrzeżenia.simplefilter ("ignoruj") na ostrzeżenia.filterwarning ("ignoruj", "Brakuje pól w zestawie reguł"). –

+0

Świetnie! Zmieniłem moją odpowiedź, aby to odzwierciedlić. – mikl

Powiązane problemy