verbose_name_plural = _(u'mchloginfo')
94 94
 
95 95
     def __unicode__(self):
96
-        return self.pk
96
+        return '%d' % self.pk
97 97
 
98 98
 
99 99
 class MchSearchModelAndCameraLogInfo(BaseModelMixin):
@@ -112,4 +112,4 @@ class MchSearchModelAndCameraLogInfo(BaseModelMixin):
112 112
         verbose_name_plural = _(u'mchsearchmodelandcameraloginfo')
113 113
 
114 114
     def __unicode__(self):
115
-        return self.pk
115
+        return '%d' % self.pk

+ 1 - 1
marketcode/models.py

@@ -21,4 +21,4 @@ class MarketCodeInfo(BaseModelMixin):
21 21
         verbose_name_plural = _(u'一物一码信息')
22 22
 
23 23
     def __unicode__(self):
24
-        return self.pk
24
+        return '%d' % self.pk

+ 11 - 11
mch/models.py

@@ -117,7 +117,7 @@ class BrandInfo(BaseModelMixin):
117 117
         verbose_name_plural = _(u'品牌信息')
118 118
 
119 119
     def __unicode__(self):
120
-        return self.pk
120
+        return '%d' % self.pk
121 121
 
122 122
     @property
123 123
     def brand_logo_url(self):
@@ -173,7 +173,7 @@ class ModelInfo(BaseModelMixin):
173 173
         verbose_name_plural = _(u'型号信息')
174 174
 
175 175
     def __unicode__(self):
176
-        return self.pk
176
+        return '%d' % self.pk
177 177
 
178 178
     @property
179 179
     def image_path(self):
@@ -271,7 +271,7 @@ class ModelImageInfo(BaseModelMixin):
271 271
         verbose_name_plural = _(u'型号图片信息')
272 272
 
273 273
     def __unicode__(self):
274
-        return self.pk
274
+        return '%d' % self.pk
275 275
 
276 276
     @property
277 277
     def image_url(self):
@@ -299,7 +299,7 @@ class CameraModelInfo(BaseModelMixin):
299 299
         verbose_name_plural = _(u'机身信息')
300 300
 
301 301
     def __unicode__(self):
302
-        return self.pk
302
+        return '%d' % self.pk
303 303
 
304 304
 
305 305
 class ModelCameraBodyInfo(BaseModelMixin):
@@ -323,7 +323,7 @@ class ModelCameraBodyInfo(BaseModelMixin):
323 323
         verbose_name_plural = _(u'型号机身适配信息')
324 324
 
325 325
     def __unicode__(self):
326
-        return self.pk
326
+        return '%d' % self.pk
327 327
 
328 328
     @property
329 329
     def model_url(self):
@@ -376,7 +376,7 @@ class DistributorInfo(BaseModelMixin):
376 376
         verbose_name_plural = _(u'经销商信息')
377 377
 
378 378
     def __unicode__(self):
379
-        return self.pk
379
+        return '%d' % self.pk
380 380
 
381 381
     @property
382 382
     def data(self):
@@ -456,7 +456,7 @@ class SaleclerkInfo(BaseModelMixin, SexModelMixin):
456 456
         )
457 457
 
458 458
     def __unicode__(self):
459
-        return self.pk
459
+        return '%d' % self.pk
460 460
 
461 461
     @property
462 462
     def admindata(self):
@@ -500,7 +500,7 @@ class MaintenancemanInfo(BaseModelMixin, SexModelMixin):
500 500
         )
501 501
 
502 502
     def __unicode__(self):
503
-        return self.pk
503
+        return '%d' % self.pk
504 504
 
505 505
     @property
506 506
     def data(self):
@@ -535,7 +535,7 @@ class BrandModelDistributorPriceInfo(BaseModelMixin):
535 535
         )
536 536
 
537 537
     def __unicode__(self):
538
-        return self.pk
538
+        return '%d' % self.pk
539 539
 
540 540
 
541 541
 class LatestAppInfo(BaseModelMixin):
@@ -668,7 +668,7 @@ class ConsumeInfoSubmitLogInfo(BaseModelMixin):
668 668
         verbose_name_plural = _(u'消费者信息提交记录')
669 669
 
670 670
     def __unicode__(self):
671
-        return self.pk
671
+        return '%d' % self.pk
672 672
 
673 673
     @property
674 674
     def model_info(self):
@@ -776,7 +776,7 @@ class ActivityInfo(BaseModelMixin):
776 776
         verbose_name_plural = _(u'活动信息')
777 777
 
778 778
     def __unicode__(self):
779
-        return self.pk
779
+        return '%d' % self.pk
780 780
 
781 781
     def final_expire_at(self, created_at=None):
782 782
         if self.coupon_expire_type == ActivityInfo.FIXED_EXPIRED_TIME:

+ 6 - 6
member/models.py

@@ -51,7 +51,7 @@ class GoodsInfo(BaseModelMixin):
51 51
         verbose_name_plural = _(u'会员商品信息')
52 52
 
53 53
     def __unicode__(self):
54
-        return self.pk
54
+        return '%d' % self.pk
55 55
 
56 56
     @property
57 57
     def image_path(self):
@@ -134,7 +134,7 @@ class GoodsOrderInfo(BaseModelMixin):
134 134
         verbose_name_plural = _(u'会员商品订单信息')
135 135
 
136 136
     def __unicode__(self):
137
-        return self.pk
137
+        return '%d' % self.pk
138 138
 
139 139
     @property
140 140
     def admindata(self):
@@ -205,7 +205,7 @@ class RightInfo(BaseModelMixin):
205 205
         verbose_name_plural = _(u'会员权益信息')
206 206
 
207 207
     def __unicode__(self):
208
-        return self.pk
208
+        return '%d' % self.pk
209 209
 
210 210
     @property
211 211
     def icon_path(self):
@@ -265,7 +265,7 @@ class ShotTypeInfo(BaseModelMixin):
265 265
         verbose_name_plural = _(u'镜头类型信息')
266 266
 
267 267
     def __unicode__(self):
268
-        return self.pk
268
+        return '%d' % self.pk
269 269
 
270 270
     @property
271 271
     def shots(self):
@@ -492,7 +492,7 @@ class MemberActivitySignupInfo(BaseModelMixin):
492 492
         )
493 493
 
494 494
     def __unicode__(self):
495
-        return self.pk
495
+        return '%d' % self.pk
496 496
 
497 497
 
498 498
 class MemberActivitySigninInfo(BaseModelMixin):
@@ -516,7 +516,7 @@ class MemberActivitySigninInfo(BaseModelMixin):
516 516
         )
517 517
 
518 518
     def __unicode__(self):
519
-        return self.pk
519
+        return '%d' % self.pk
520 520
 
521 521
 
522 522
 class MemberActivityGroupShareInfo(BaseModelMixin):

+ 4 - 4
message/models.py

@@ -57,7 +57,7 @@ class UserMessageInfo(BaseModelMixin):
57 57
         verbose_name_plural = _('usermessageinfo')
58 58
 
59 59
     def __unicode__(self):
60
-        return self.pk
60
+        return '%d' % self.pk
61 61
 
62 62
     def msg_info(self, user_id=None):
63 63
         try:
@@ -89,7 +89,7 @@ class SystemMessageInfo(BaseModelMixin, PaiaiSrcMixin):
89 89
         verbose_name_plural = _('systemmessageinfo')
90 90
 
91 91
     def __unicode__(self):
92
-        return self.pk
92
+        return '%d' % self.pk
93 93
 
94 94
     def msg_info(self, user_id=None):
95 95
         return {
@@ -114,7 +114,7 @@ class SystemMessageReadInfo(BaseModelMixin):
114 114
         )
115 115
 
116 116
     def __unicode__(self):
117
-        return self.pk
117
+        return '%d' % self.pk
118 118
 
119 119
 
120 120
 class SystemMessageDeleteInfo(BaseModelMixin):
@@ -130,4 +130,4 @@ class SystemMessageDeleteInfo(BaseModelMixin):
130 130
         )
131 131
 
132 132
     def __unicode__(self):
133
-        return self.pk
133
+        return '%d' % self.pk

+ 2 - 2
sales/models.py

@@ -107,7 +107,7 @@ class SalesResponsibilityInfoModelsSaleStatisticInfo(BaseModelMixin):
107 107
         verbose_name_plural = _(u'[销售担当]型号销量统计')
108 108
 
109 109
     def __unicode__(self):
110
-        return self.pk
110
+        return '%d' % self.pk
111 111
 
112 112
     @property
113 113
     def data(self):
@@ -144,7 +144,7 @@ class SuperSalesResponsibilityInfoModelsSaleStatisticInfo(BaseModelMixin):
144 144
         verbose_name_plural = _(u'[超级销售担当]销售担当销量统计')
145 145
 
146 146
     def __unicode__(self):
147
-        return self.pk
147
+        return '%d' % self.pk
148 148
 
149 149
     @property
150 150
     def data(self):

+ 1 - 1
staff/models.py

@@ -14,4 +14,4 @@ class StaffDeleteClerkSaleSubmitLogInfo(BaseModelMixin):
14 14
         verbose_name_plural = _(u'staffdeleteclerksalesubmitloginfo')
15 15
 
16 16
     def __unicode__(self):
17
-        return self.pk
17
+        return '%d' % self.pk

+ 11 - 11
statistic/models.py

@@ -19,7 +19,7 @@ class RegisterStatisticInfo(BaseModelMixin):
19 19
         verbose_name_plural = _(u'注册用户统计')
20 20
 
21 21
     def __unicode__(self):
22
-        return self.pk
22
+        return '%d' % self.pk
23 23
 
24 24
     @property
25 25
     def data(self):
@@ -42,7 +42,7 @@ class SaleStatisticInfo(BaseModelMixin):
42 42
         verbose_name_plural = _(u'[经销商维度]销量统计')
43 43
 
44 44
     def __unicode__(self):
45
-        return self.pk
45
+        return '%d' % self.pk
46 46
 
47 47
     @property
48 48
     def data(self):
@@ -65,7 +65,7 @@ class ModelSaleStatisticInfo(BaseModelMixin):
65 65
         verbose_name_plural = _(u'[经销商维度]型号销量统计')
66 66
 
67 67
     def __unicode__(self):
68
-        return self.pk
68
+        return '%d' % self.pk
69 69
 
70 70
     @property
71 71
     def data(self):
@@ -98,7 +98,7 @@ class DistributorSaleStatisticInfo(BaseModelMixin):
98 98
         verbose_name_plural = _(u'[经销商维度]经销商销量统计')
99 99
 
100 100
     def __unicode__(self):
101
-        return self.pk
101
+        return '%d' % self.pk
102 102
 
103 103
     @property
104 104
     def data(self):
@@ -124,7 +124,7 @@ class ProvinceSaleStatisticInfo(BaseModelMixin):
124 124
         verbose_name_plural = _(u'[经销商维度]省份销量统计')
125 125
 
126 126
     def __unicode__(self):
127
-        return self.pk
127
+        return '%d' % self.pk
128 128
 
129 129
     @property
130 130
     def data(self):
@@ -151,7 +151,7 @@ class SaleclerkSaleStatisticInfo(BaseModelMixin):
151 151
         verbose_name_plural = _(u'[经销商维度]销售员销量统计')
152 152
 
153 153
     def __unicode__(self):
154
-        return self.pk
154
+        return '%d' % self.pk
155 155
 
156 156
     @property
157 157
     def data(self):
@@ -178,7 +178,7 @@ class ConsumeUserStatisticInfo(BaseModelMixin):
178 178
         verbose_name_plural = _(u'[消费者维度]用户统计')
179 179
 
180 180
     def __unicode__(self):
181
-        return self.pk
181
+        return '%d' % self.pk
182 182
 
183 183
     @property
184 184
     def data(self):
@@ -198,7 +198,7 @@ class ConsumeSaleStatisticInfo(BaseModelMixin):
198 198
         verbose_name_plural = _(u'[消费者维度]销量统计')
199 199
 
200 200
     def __unicode__(self):
201
-        return self.pk
201
+        return '%d' % self.pk
202 202
 
203 203
     @property
204 204
     def data(self):
@@ -221,7 +221,7 @@ class ConsumeModelSaleStatisticInfo(BaseModelMixin):
221 221
         verbose_name_plural = _(u'[消费者维度]型号销量统计')
222 222
 
223 223
     def __unicode__(self):
224
-        return self.pk
224
+        return '%d' % self.pk
225 225
 
226 226
     @property
227 227
     def data(self):
@@ -245,7 +245,7 @@ class ConsumeDistributorSaleStatisticInfo(BaseModelMixin):
245 245
         verbose_name_plural = _(u'[消费者维度]经销商销量统计')
246 246
 
247 247
     def __unicode__(self):
248
-        return self.pk
248
+        return '%d' % self.pk
249 249
 
250 250
     @property
251 251
     def data(self):
@@ -273,7 +273,7 @@ class ConsumeProvinceSaleStatisticInfo(BaseModelMixin):
273 273
         verbose_name_plural = _(u'[消费者维度]省份销量统计')
274 274
 
275 275
     def __unicode__(self):
276
-        return self.pk
276
+        return '%d' % self.pk
277 277
 
278 278
     @property
279 279
     def data(self):

kodo - Gogs: Go Git Service

Nav apraksta

watermark_utils.py 2.0KB

    # -*- coding: utf-8 -*- try: import Image import ImageEnhance except ImportError: from PIL import Image, ImageEnhance def reduce_opacity(im, opacity): """Returns an image with reduced opacity.""" assert 0 <= opacity <= 1 im = im.convert('RGBA') if im.mode != 'RGBA' else im.copy() alpha = im.split()[3] alpha = ImageEnhance.Brightness(alpha).enhance(opacity) im.putalpha(alpha) return im def watermark(im, mark, position, opacity=1): """Adds a watermark to an image.""" if opacity < 1: mark = reduce_opacity(mark, opacity) if im.mode != 'RGBA': im = im.convert('RGBA') # create a transparent layer the size of the image and draw the # watermark in that layer. layer = Image.new('RGBA', im.size, (0, 0, 0, 0)) if position == 'tile': for y in range(0, im.size[1], mark.size[1]): for x in range(0, im.size[0], mark.size[0]): layer.paste(mark, (x, y)) elif position == 'scale': # scale, but preserve the aspect ratio ratio = min( float(im.size[0]) / mark.size[0], float(im.size[1]) / mark.size[1]) w = int(mark.size[0] * ratio) h = int(mark.size[1] * ratio) mark = mark.resize((w, h)) layer.paste(mark, ((im.size[0] - w) / 2, (im.size[1] - h) / 2)) else: layer.paste(mark, position) # composite the watermark with the layer return Image.composite(layer, im, layer) def watermark_wrap(im_path, mark_path, save_path=''): im, mark = Image.open(im_path), Image.open(mark_path) new_im = watermark(im, mark, (50, 50), 0.5) new_im.save(save_path or im_path) def watermark_test(): im, mark = Image.open('original_CGzC_10a50000c8811190.jpg'), Image.open('paiai_96_96.png') watermark(im, mark, 'tile', 0.5).show() watermark(im, mark, 'scale', 1.0).show() watermark(im, mark, (50, 50), 0.5).show() if __name__ == '__main__': # watermark_test() watermark_wrap('original_CGzC_10a50000c8811190.jpg', 'paiai_96_96.png')