Anton Shestakov <av6@dwimlabs.net>, Wed, 15 Jun 2016 21:35:22 +0800
incoming: use absolute imports
candolint/models.py
Permissions: -rw-r--r--
database = pw.SqliteDatabase(None, journal_mode='WAL') class BaseModel(pw.Model): def create_or_get(cls, **kwargs): with cls._meta.database.atomic(): return cls.create(**kwargs), True except pw.IntegrityError: # a variation on https://github.com/coleifer/peewee/pull/681 for field_names, unique in cls._meta.indexes: compound_unique.update(field_names) for field_name, value in kwargs.items(): field = getattr(cls, field_name) if field.unique or field.primary_key or field_name in compound_unique: query.append(field == value) return cls.get(*query), False class Project(BaseModel): url = pw.CharField(unique=True) user = pw.CharField(null=True) (('domain', 'user', 'name'), True), date = pw.DateTimeField() project = pw.ForeignKeyField(Project, related_name='changes') (('rev', 'node', 'project'), True), ordinal = pw.IntegerField() errors = pw.IntegerField() warnings = pw.IntegerField() success = pw.BooleanField() started = pw.DateTimeField() finished = pw.DateTimeField() project = pw.ForeignKeyField(Project, related_name='checks') change = pw.ForeignKeyField(Change, related_name='checks') order_by = ('-finished', '-ordinal') (('ordinal', 'project'), True),