2015-12-04 14 views
6

Python 2.7.6 ile Flask Admin 2.1 kullanıyorum.Flask-Admin 2.1 uyarısını nasıl önleyebilirim? "UserWarning: Fieldset'ten eksik alanlar" uyarısı?

Flask-Admin model sınıflarımdan biri, flask.ext.admin.contrib.sqla.ModelView'dan miras alır ve form_rules'u geçersiz kılar.

benim uygulamayı çalıştırmak

, bu uyarı görüntülenir: "UserWarning: Fields missing from ruleset"

uyarı doğrudur: ruleset dahil değildir benim modelinde alanlar vardır. Ama bu tasarım gereğidir. Kullanıcılar bu modelin örneklerini oluşturduğunda veya düzenlediğinde bu alanların görüntülenmesini istemiyorum.

nasıl uyarıyı bastırmak edebilirsiniz https://github.com/flask-admin/flask-admin/pull/815#issuecomment-81963865:

Zaten bu okudun?

+2

bir uyarı var yüzden - alanı içinde değil ise kural kümesi, ancak formda, WTForms daha önce var olan herhangi bir değeri silmek için _always_ olacaktır. Tarayıcılar bu şekilde çalışır - eğer değer gönderilmezse, o zaman boştur. Yani, eğer alanın bir formda mevcut olmasını istemiyorsanız, onu formdan kaldırın. Herhangi bir sebepten ötürü formda olmasını istiyorsan, ama göstermek istemiyorum - sakla. – Joes

cevap

9

Sen görünümü varsayılır adı UserView ile bu parçacığını kullanarak eklenir uyarıyı bastırmak edebilirsiniz:

import warnings 

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

Referans: https://docs.python.org/2/library/warnings.html#warnings.filterwarnings İşte

+2

Harika cevap! Warnings.simplefilter ('yoksay') 'ı warnings.filterwarnings (' ignore ',' ruleset from fieldset ')' den değiştirerek değiştirdiğim sadece belirli uyarıyı yakalamak için biraz geliştirdim. –

+0

Harika! Bunu yanıtlamak için cevabımı düzenledim. – mikl

İlgili konular