[英]How define variable with value inside Class and how to use in other Class
外面有變數。 正確的類功能需要變量。 如何在類中移動它並在其他類中使用它?
這工作不錯,但我需要移動STATUS_CHOICES
類內部UserDevice
和使用STATUS_CHOICES
內UserDeviceAdmin
了。
STATUS_CHOICES = ((0, gettext("disabled")), (1, gettext("allowed")))
class UserDevice(BaseModel):
"""Table with all devices added and owned by users."""
device_uniqueid = CharField(primary_key=True)
device_user = ForeignKeyField(User, null=True, backref='userdevices')
device_name = CharField()
model = CharField()
phone = CharField()
status = IntegerField(choices=STATUS_CHOICES, default=1)
inserted_at = DateTimeField(null=True)
def myfunc(self):
return self.a
class UserDeviceAdmin(ModelView):
can_create = False
edit_modal = True
column_choices = {'status': STATUS_CHOICES}
column_list = [
'device_uniqueid',
'device_user.email',
'device_name',
'model',
'phone',
'status',
'inserted_at',
]
column_sortable_list = ('device_uniqueid', 'device_user.email')
form_ajax_refs = {'device_user': {'fields': ['email']}}
您應該考慮使用可以繼承的父類,由於多重繼承,這在python中很容易:
class Parent_class(object):
def get_status_choices(self):
return ((0, gettext("disabled")), (1, gettext("allowed")))
class UserDevice(BaseModel, Parent_class):
# your implementation...
status = IntegerField(choices=self.get_status_choices(), default=1)
# and further implementations....
class UserDeviceAdmin(ModelView, Parent_class):
# your implementation...
column_choices = {'status': self.get_status_choices()}
# and further implementations....
請注意,您最好將父類的名稱更改為域中相關的名稱
把它移到里面:
class UserDevice(BaseModel):
"""Table with all devices added and owned by users."""
STATUS_CHOICES = ((0, gettext("disabled")), (1, gettext("allowed")))
從其他類訪問它:
class UserDeviceAdmin(ModelView):
can_create = False
edit_modal = True
column_choices = {'status': UserDevice.STATUS_CHOICES}
這就像靜態變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.