محرك تطبيق Google: قيود النموذج النموذجي؟
-
19-09-2019 - |
سؤال
لدي نموذج Datastore يمثل العناصر في موقع التجارة الإلكترونية:
class Item(db.Model):
CSIN = db.IntegerProperty()
name = db.StringProperty()
price = db.IntegerProperty()
quantity = db.IntegerProperty()
هل هناك طريقة لفرض قيود النزاهة؟ على سبيل المثال، أود التأكد من ذلك quantity
لا يقل أبدا أن يكون أقل من 0.
المحلول
ال منشئ العقارات يتيح لك تحديد وظيفة مع الوسيطة المسماة "Validator". يجب أن تأخذ هذه الوظيفة حجة واحدة، والقيمة، ورفع استثناء إذا كان صالح غير صالح. علي سبيل المثال:
def range_validator(minval, maxval):
def validator(v):
if (minval is not None and v < minval) or (maxval is not None and v > maxval):
raise ValueError("Value %s outside range (%s, %s)" % (v, minval, maxval))
return validator
class Item(db.Model):
CSIN = db.IntegerProperty()
name = db.StringProperty()
price = db.IntegerProperty()
quantity = db.IntegerProperty(validator=range_validator(0, None))
لاحظ أن المثال يستخدم وظيفة متداخلة لتحديد الموصلات العامة للأغراض العامة - يمكنك، بالطبع، استخدم وظائف بسيطة إذا كنت ترغب في كتابة أكثر عرضة للأغراض الخاصة.
لا تنتمي إلى StackOverflow