first 8 年之前 css-overflow-anchor.json 11e3a9652a first 8 年之前 css-overscroll-behavior.json 11e3a9652a first 8 年之前 css-page-break.json 11e3a9652a first 8 年之前 css-paged-media.json 11e3a9652a first 8 年之前 css-paint-api.json 11e3a9652a first 8 年之前 css-placeholder-shown.json 11e3a9652a first 8 年之前 css-placeholder.json 11e3a9652a first 8 年之前 css-read-only-write.json 11e3a9652a first 8 年之前 css-rebeccapurple.json 11e3a9652a first 8 年之前 css-reflections.json 11e3a9652a first 8 年之前 css-regions.json 11e3a9652a first 8 年之前 css-repeating-gradients.json 11e3a9652a first 8 年之前 css-resize.json 11e3a9652a first 8 年之前 css-revert-value.json 11e3a9652a first 8 年之前 css-rrggbbaa.json 11e3a9652a first 8 年之前 css-scroll-behavior.json 11e3a9652a first 8 年之前 css-scrollbar.json 11e3a9652a first 8 年之前 css-sel2.json 11e3a9652a first 8 年之前 css-sel3.json 11e3a9652a first 8 年之前 css-selection.json 11e3a9652a first 8 年之前 css-shapes.json 11e3a9652a first 8 年之前 css-snappoints.json 11e3a9652a first 8 年之前 css-sticky.json 11e3a9652a first 8 年之前 css-supports-api.json 11e3a9652a first 8 年之前 css-table.json 11e3a9652a first 8 年之前 css-text-align-last.json 11e3a9652a first 8 年之前 css-text-indent.json 11e3a9652a first 8 年之前 css-text-justify.json 11e3a9652a first 8 年之前 css-text-orientation.json 11e3a9652a first 8 年之前 css-text-spacing.json 11e3a9652a first 8 年之前 css-textshadow.json 11e3a9652a first 8 年之前 css-touch-action-2.json 11e3a9652a first 8 年之前 css-touch-action.json 11e3a9652a first 8 年之前 css-transitions.json 11e3a9652a first 8 年之前 css-unicode-bidi.json 11e3a9652a first 8 年之前 css-unset-value.json 11e3a9652a first 8 年之前 css-variables.json 11e3a9652a first 8 年之前 css-widows-orphans.json 11e3a9652a first 8 年之前 css-writing-mode.json 11e3a9652a first 8 年之前 css-zoom.json 11e3a9652a first 8 年之前 css3-attr.json 11e3a9652a first 8 年之前 css3-boxsizing.json 11e3a9652a first 8 年之前 css3-colors.json 11e3a9652a first 8 年之前 css3-cursors-grab.json 11e3a9652a first 8 年之前 css3-cursors-newer.json 11e3a9652a first 8 年之前 css3-cursors.json 11e3a9652a first 8 年之前 css3-tabsize.json 11e3a9652a first 8 年之前 currentcolor.json 11e3a9652a first 8 年之前 custom-elements.json 11e3a9652a first 8 年之前 custom-elementsv1.json 11e3a9652a first 8 年之前 customevent.json 11e3a9652a first 8 年之前 datalist.json 11e3a9652a first 8 年之前 dataset.json 11e3a9652a first 8 年之前 datauri.json 11e3a9652a first 8 年之前 details.json 11e3a9652a first 8 年之前 deviceorientation.json 11e3a9652a first 8 年之前 devicepixelratio.json 11e3a9652a first 8 年之前 dialog.json 11e3a9652a first 8 年之前 dispatchevent.json 11e3a9652a first 8 年之前 do-not-track.json 11e3a9652a first 8 年之前 document-currentscript.json 11e3a9652a first 8 年之前 document-evaluate-xpath.json 11e3a9652a first 8 年之前 document-execcommand.json 11e3a9652a first 8 年之前 document-scrollingelement.json 11e3a9652a first 8 年之前 documenthead.json 11e3a9652a first 8 年之前 dom-manip-convenience.json 11e3a9652a first 8 年之前 dom-range.json 11e3a9652a first 8 年之前 domcontentloaded.json 11e3a9652a first 8 年之前 domfocusin-domfocusout-events.json 11e3a9652a first 8 年之前 dommatrix.json 11e3a9652a first 8 年之前 download.json 11e3a9652a first 8 年之前 dragndrop.json 11e3a9652a first 8 年之前 element-closest.json 11e3a9652a first 8 年之前 element-from-point.json 11e3a9652a first 8 年之前 eme.json 11e3a9652a first 8 年之前 eot.json 11e3a9652a first 8 年之前 es5.json 11e3a9652a first 8 年之前 es6-class.json 11e3a9652a first 8 年之前 es6-generators.json 11e3a9652a first 8 年之前 es6-module-dynamic-import.json 11e3a9652a first 8 年之前 es6-module.json 11e3a9652a first 8 年之前 es6-number.json 11e3a9652a first 8 年之前 es6-string-includes.json 11e3a9652a first 8 年之前 eventsource.json 11e3a9652a first 8 年之前 fetch.json 11e3a9652a first 8 年之前 fieldset-disabled.json 11e3a9652a first 8 年之前 fileapi.json 11e3a9652a first 8 年之前 filereader.json 11e3a9652a first 8 年之前 filereadersync.json 11e3a9652a first 8 年之前 filesystem.json 11e3a9652a first 8 年之前 flac.json 11e3a9652a first 8 年之前 flexbox.json 11e3a9652a first 8 年之前 flow-root.json 11e3a9652a first 8 年之前 focusin-focusout-events.json 11e3a9652a first 8 年之前 focusoptions-preventscroll.json 11e3a9652a first 8 年之前 font-family-system-ui.json 11e3a9652a first 8 年之前 font-feature.json 11e3a9652a first 8 年之前 font-kerning.json 11e3a9652a first 8 年之前 font-loading.json 11e3a9652a first 8 年之前 font-size-adjust.json 11e3a9652a first 8 年之前 font-smooth.json 11e3a9652a first 8 年之前 font-unicode-range.json 11e3a9652a first 8 年之前 font-variant-alternates.json 11e3a9652a first 8 年之前 font-variant-east-asian.json 11e3a9652a first 8 年之前 fontface.json 11e3a9652a first 8 年之前 form-attribute.json 11e3a9652a first 8 年之前 form-submit-attributes.json 11e3a9652a first 8 年之前 form-validation.json 11e3a9652a first 8 年之前 forms.json 11e3a9652a first 8 年之前 fullscreen.json 11e3a9652a first 8 年之前 gamepad.json 11e3a9652a first 8 年之前 geolocation.json 11e3a9652a first 8 年之前 getboundingclientrect.json 11e3a9652a first 8 年之前 getcomputedstyle.json 11e3a9652a first 8 年之前 getelementsbyclassname.json 11e3a9652a first 8 年之前 getrandomvalues.json 11e3a9652a first 8 年之前 hardwareconcurrency.json 11e3a9652a first 8 年之前 hashchange.json 11e3a9652a first 8 年之前 heif.json 11e3a9652a first 8 年之前 hevc.json 11e3a9652a first 8 年之前 hidden.json 11e3a9652a first 8 年之前 high-resolution-time.json 11e3a9652a first 8 年之前 history.json 11e3a9652a first 8 年之前 html-media-capture.json 11e3a9652a first 8 年之前 html5semantic.json 11e3a9652a first 8 年之前 http-live-streaming.json 11e3a9652a first 8 年之前 http2.json 11e3a9652a first 8 年之前 iframe-sandbox.json 11e3a9652a first 8 年之前 iframe-seamless.json 11e3a9652a first 8 年之前 iframe-srcdoc.json 11e3a9652a first 8 年之前 imagecapture.json 11e3a9652a first 8 年之前 ime.json 11e3a9652a first 8 年之前 img-naturalwidth-naturalheight.json 11e3a9652a first 8 年之前 imports.json 11e3a9652a first 8 年之前 indeterminate-checkbox.json 11e3a9652a first 8 年之前 indexeddb.json 11e3a9652a first 8 年之前 indexeddb2.json 11e3a9652a first 8 年之前 inline-block.json 11e3a9652a first 8 年之前 innertext.json 11e3a9652a first 8 年之前 input-autocomplete-onoff.json 11e3a9652a first 8 年之前 input-color.json 11e3a9652a first 8 年之前 input-datetime.json 11e3a9652a first 8 年之前 input-email-tel-url.json 11e3a9652a first 8 年之前 input-event.json 11e3a9652a first 8 年之前 input-file-accept.json 11e3a9652a first 8 年之前 input-file-directory.json 11e3a9652a first 8 年之前 input-file-multiple.json 11e3a9652a first 8 年之前 input-inputmode.json 11e3a9652a first 8 年之前 input-minlength.json 11e3a9652a first 8 年之前 input-number.json 11e3a9652a first 8 年之前 input-pattern.json 11e3a9652a first 8 年之前 input-placeholder.json 11e3a9652a first 8 年之前 input-range.json 11e3a9652a first 8 年之前 input-search.json 11e3a9652a first 8 年之前 input-selection.json 11e3a9652a first 8 年之前 insert-adjacent.json 11e3a9652a first 8 年之前 insertadjacenthtml.json 11e3a9652a first 8 年之前 internationalization.json 11e3a9652a first 8 年之前 intersectionobserver.json 11e3a9652a first 8 年之前 intrinsic-width.json 11e3a9652a first 8 年之前 jpeg2000.json 11e3a9652a first 8 年之前 jpegxr.json 11e3a9652a first 8 年之前 json.json 11e3a9652a first 8 年之前 kerning-pairs-ligatures.json 11e3a9652a first 8 年之前 keyboardevent-charcode.json 11e3a9652a first 8 年之前 keyboardevent-code.json 11e3a9652a first 8 年之前 keyboardevent-getmodifierstate.json 11e3a9652a first 8 年之前 keyboardevent-key.json 11e3a9652a first 8 年之前 keyboardevent-location.json 11e3a9652a first 8 年之前 keyboardevent-which.json 11e3a9652a first 8 年之前 lazyload.json 11e3a9652a first 8 年之前 let.json 11e3a9652a first 8 年之前 link-icon-png.json 11e3a9652a first 8 年之前 link-icon-svg.json 11e3a9652a first 8 年之前 link-rel-dns-prefetch.json 11e3a9652a first 8 年之前 link-rel-preconnect.json 11e3a9652a first 8 年之前 link-rel-prefetch.json 11e3a9652a first 8 年之前 link-rel-preload.json 11e3a9652a first 8 年之前 link-rel-prerender.json 11e3a9652a first 8 年之前 localecompare.json 11e3a9652a first 8 年之前 matchesselector.json 11e3a9652a first 8 年之前 matchmedia.json 11e3a9652a first 8 年之前 mathml.json 11e3a9652a first 8 年之前 maxlength.json 11e3a9652a first 8 年之前 media-attribute.json 11e3a9652a first 8 年之前 media-fragments.json 11e3a9652a first 8 年之前 media-session-api.json 11e3a9652a first 8 年之前 mediacapture-fromelement.json 11e3a9652a first 8 年之前 mediarecorder.json 11e3a9652a first 8 年之前 mediasource.json 11e3a9652a first 8 年之前 menu.json 11e3a9652a first 8 年之前 meter.json 11e3a9652a first 8 年之前 midi.json 11e3a9652a first 8 年之前 minmaxwh.json 11e3a9652a first 8 年之前 mp3.json 11e3a9652a first 8 年之前 mpeg-dash.json 11e3a9652a first 8 年之前 mpeg4.json 11e3a9652a first 8 年之前 multibackgrounds.json 11e3a9652a first 8 年之前 multicolumn.json 11e3a9652a first 8 年之前 mutation-events.json 11e3a9652a first 8 年之前 mutationobserver.json 11e3a9652a first 8 年之前 namevalue-storage.json 11e3a9652a first 8 年之前 nav-timing.json 11e3a9652a first 8 年之前 navigator-language.json 11e3a9652a first 8 年之前 netinfo.json 11e3a9652a first 8 年之前 node-contains.json 11e3a9652a first 8 年之前 node-parentelement.json 11e3a9652a first 8 年之前 notifications.json 11e3a9652a first 8 年之前 object-fit.json 11e3a9652a first 8 年之前 object-observe.json 11e3a9652a first 8 年之前 object-values.json 11e3a9652a first 8 年之前 objectrtc.json 11e3a9652a first 8 年之前 offline-apps.json 11e3a9652a first 8 年之前 offscreencanvas.json 11e3a9652a first 8 年之前 ogg-vorbis.json 11e3a9652a first 8 年之前 ogv.json 11e3a9652a first 8 年之前 ol-reversed.json 11e3a9652a first 8 年之前 once-event-listener.json 11e3a9652a first 8 年之前 online-status.json 11e3a9652a first 8 年之前 opus.json 11e3a9652a first 8 年之前 outline.json 11e3a9652a first 8 年之前 pad-start-end.json 11e3a9652a first 8 年之前 page-transition-events.json 11e3a9652a first 8 年之前 pagevisibility.json 11e3a9652a first 8 年之前 passive-event-listener.json 11e3a9652a first 8 年之前 path2d.json 11e3a9652a first 8 年之前 payment-request.json 11e3a9652a first 8 年之前 permissions-api.json 11e3a9652a first 8 年之前 picture.json 11e3a9652a first 8 年之前 ping.json 11e3a9652a first 8 年之前 png-alpha.json 11e3a9652a first 8 年之前 pointer-events.json 11e3a9652a first 8 年之前 pointer.json 11e3a9652a first 8 年之前 pointerlock.json 11e3a9652a first 8 年之前 prefers-reduced-motion.json 11e3a9652a first 8 年之前 progress.json 11e3a9652a first 8 年之前 promises.json 11e3a9652a first 8 年之前 proximity.json 11e3a9652a first 8 年之前 proxy.json 11e3a9652a first 8 年之前 publickeypinning.json 11e3a9652a first 8 年之前 push-api.json 11e3a9652a first 8 年之前 queryselector.json 11e3a9652a first 8 年之前 readonly-attr.json 11e3a9652a first 8 年之前 referrer-policy.json 11e3a9652a first 8 年之前 registerprotocolhandler.json 11e3a9652a first 8 年之前 rel-noopener.json 11e3a9652a first 8 年之前 rel-noreferrer.json 11e3a9652a first 8 年之前 rellist.json 11e3a9652a first 8 年之前 rem.json 11e3a9652a first 8 年之前 requestanimationframe.json 11e3a9652a first 8 年之前 requestidlecallback.json 11e3a9652a first 8 年之前 resizeobserver.json 11e3a9652a first 8 年之前 resource-timing.json 11e3a9652a first 8 年之前 rest-parameters.json 11e3a9652a first 8 年之前 rtcpeerconnection.json 11e3a9652a first 8 年之前 ruby.json 11e3a9652a first 8 年之前 run-in.json 11e3a9652a first 8 年之前 same-site-cookie-attribute.json 11e3a9652a first 8 年之前 screen-orientation.json 11e3a9652a first 8 年之前 script-async.json 11e3a9652a first 8 年之前 script-defer.json 11e3a9652a first 8 年之前 scrollintoview.json 11e3a9652a first 8 年之前 scrollintoviewifneeded.json 11e3a9652a first 8 年之前 sdch.json 11e3a9652a first 8 年之前 selection-api.json 11e3a9652a first 8 年之前 server-timing.json 11e3a9652a first 8 年之前 serviceworkers.json 11e3a9652a first 8 年之前 setimmediate.json 11e3a9652a first 8 年之前 sha-2.json 11e3a9652a first 8 年之前 shadowdom.json 11e3a9652a first 8 年之前 shadowdomv1.json 11e3a9652a first 8 年之前 sharedworkers.json 11e3a9652a first 8 年之前 sni.json 11e3a9652a first 8 年之前 spdy.json 11e3a9652a first 8 年之前 speech-recognition.json 11e3a9652a first 8 年之前 speech-synthesis.json 11e3a9652a first 8 年之前 spellcheck-attribute.json 11e3a9652a first 8 年之前 sql-storage.json 11e3a9652a first 8 年之前 srcset.json 11e3a9652a first 8 年之前 stopimmediatepropagation.json 11e3a9652a first 8 年之前 stream.json 11e3a9652a first 8 年之前 streams.json 11e3a9652a first 8 年之前 stricttransportsecurity.json 11e3a9652a first 8 年之前 style-scoped.json 11e3a9652a first 8 年之前 subresource-integrity.json 11e3a9652a first 8 年之前 svg-css.json 11e3a9652a first 8 年之前 svg-filters.json 11e3a9652a first 8 年之前 svg-fonts.json 11e3a9652a first 8 年之前 svg-fragment.json 11e3a9652a first 8 年之前 svg-html.json 11e3a9652a first 8 年之前 svg-html5.json 11e3a9652a first 8 年之前 svg-img.json 11e3a9652a first 8 年之前 svg-smil.json 11e3a9652a first 8 年之前 svg.json 11e3a9652a first 8 年之前 symbols.json 11e3a9652a first 8 年之前 tabindex-attr.json 11e3a9652a first 8 年之前 template-literals.json 11e3a9652a first 8 年之前 template.json 11e3a9652a first 8 年之前 testfeat.json 11e3a9652a first 8 年之前 text-decoration.json 11e3a9652a first 8 年之前 text-emphasis.json 11e3a9652a first 8 年之前 text-overflow.json 11e3a9652a first 8 年之前 text-size-adjust.json 11e3a9652a first 8 年之前 text-stroke.json 11e3a9652a first 8 年之前 textcontent.json 11e3a9652a first 8 年之前 textencoder.json 11e3a9652a first 8 年之前 tls1-1.json 11e3a9652a first 8 年之前 tls1-2.json 11e3a9652a first 8 年之前 tls1-3.json 11e3a9652a first 8 年之前 token-binding.json 11e3a9652a first 8 年之前 touch.json 11e3a9652a first 8 年之前 transforms2d.json 11e3a9652a first 8 年之前 transforms3d.json 11e3a9652a first 8 年之前 ttf.json 11e3a9652a first 8 年之前 typedarrays.json 11e3a9652a first 8 年之前 u2f.json 11e3a9652a first 8 年之前 unhandledrejection.json 11e3a9652a first 8 年之前 upgradeinsecurerequests.json 11e3a9652a first 8 年之前 url.json 11e3a9652a first 8 年之前 urlsearchparams.json 11e3a9652a first 8 年之前 use-strict.json 11e3a9652a first 8 年之前 user-select-none.json 11e3a9652a first 8 年之前 user-timing.json 11e3a9652a first 8 年之前 variable-fonts.json 11e3a9652a first 8 年之前 vibration.json 11e3a9652a first 8 年之前 video.json 11e3a9652a first 8 年之前 videotracks.json 11e3a9652a first 8 年之前 viewport-units.json 11e3a9652a first 8 年之前 wai-aria.json 11e3a9652a first 8 年之前 wasm.json 11e3a9652a first 8 年之前 wav.json 11e3a9652a first 8 年之前 wbr-element.json 11e3a9652a first 8 年之前 web-animation.json 11e3a9652a first 8 年之前 web-app-manifest.json 11e3a9652a first 8 年之前 web-bluetooth.json 11e3a9652a first 8 年之前 web-share.json 11e3a9652a first 8 年之前 webgl.json 11e3a9652a first 8 年之前 webgl2.json 11e3a9652a first 8 年之前 webm.json 11e3a9652a first 8 年之前 webp.json 11e3a9652a first 8 年之前 websockets.json 11e3a9652a first 8 年之前 webusb.json 11e3a9652a first 8 年之前 webvr.json 11e3a9652a first 8 年之前 webvtt.json 11e3a9652a first 8 年之前 webworkers.json 11e3a9652a first 8 年之前 will-change.json 11e3a9652a first 8 年之前 woff.json 11e3a9652a first 8 年之前 woff2.json 11e3a9652a first 8 年之前 word-break.json 11e3a9652a first 8 年之前 wordwrap.json 11e3a9652a first 8 年之前 x-doc-messaging.json 11e3a9652a first 8 年之前 x-frame-options.json 11e3a9652a first 8 年之前 xhr2.json 11e3a9652a first 8 年之前 xhtml.json 11e3a9652a first 8 年之前 xhtmlsmil.json 11e3a9652a first 8 年之前 xml-serializer.json 11e3a9652a first 8 年之前 kodo - Gogs: Go Git Service

Nessuna descrizione

models.py 6.5KB

    # -*- coding: utf-8 -*- from django.db import models from django.utils.translation import ugettext_lazy as _ from django_models_ext import BaseModelMixin from jsonfield import JSONField from TimeConvert import TimeConvert as tc from mch.models import ModelInfo class MaintenacePointInfo(BaseModelMixin): name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'名称') province = models.CharField(_(u'province'), max_length=255, blank=True, null=True, help_text=u'省份') location = models.CharField(_(u'location'), max_length=255, blank=True, null=True, help_text=u'地址') postcode = models.CharField(_(u'postcode'), max_length=255, blank=True, null=True, help_text=u'邮政编码') class Meta: verbose_name = _(u'维修点信息') verbose_name_plural = _(u'维修点信息') def __unicode__(self): return '%d' % self.pk @property def data(self): return { 'id': self.pk, 'name': self.name, 'province': self.province, 'location': self.location, 'postcode': self.postcode, } class ExpressCompanyInfo(BaseModelMixin): name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'名称') com = models.CharField(_(u'com'), max_length=255, blank=True, null=True, help_text=u'编码') position = models.IntegerField(_(u'position'), default=999, help_text=u'排序') class Meta: verbose_name = _(u'快递公司信息') verbose_name_plural = _(u'快递公司信息') def __unicode__(self): return '%d' % self.pk @property def data(self): return { 'id': self.pk, 'name': self.name, 'com': self.com, } class MaintenaceInfo(BaseModelMixin): TRACKING_TO_DESPATCH = u'寄出运送中' TRACKING_SIGNED_FIXING = u'已签收修理中' TRACKING_FIXED_BACK = u'已修复寄回' TRACKING_BACK_SIGNED = u'寄回签收' user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True) name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'姓名') phone = models.CharField(_(u'phone'), max_length=11, blank=True, null=True, help_text=u'电话') address = models.CharField(_(u'address'), max_length=255, blank=True, null=True, help_text=u'地址') log_id = models.CharField(_(u'log_id'), max_length=255, blank=True, null=True, help_text=u'用户提交列表的唯一标识') model_id = models.CharField(_(u'model_id'), max_length=32, blank=True, null=True, help_text=u'型号唯一标识', db_index=True) sn = models.CharField(_(u'sn'), max_length=32, blank=True, null=True, help_text=u'序列号', db_index=True) desc = models.TextField(_(u'desc'), blank=True, null=True, help_text=u'故障描述') point_id = models.CharField(_(u'point_id'), max_length=32, blank=True, null=True, help_text=u'维修点唯一标识', db_index=True) point_name = models.CharField(_(u'point_name'), max_length=255, blank=True, null=True, help_text=u'维修点名称') express_name = models.CharField(_(u'express_name'), max_length=255, blank=True, null=True, help_text=u'快递公司') express_com = models.CharField(_(u'express_com'), max_length=255, blank=True, null=True, help_text=u'快递编码') tracking_number = models.CharField(_(u'tracking_number'), max_length=255, blank=True, null=True, help_text=u'快递单号') tracking_info = JSONField(_(u'tracking_info'), blank=True, null=True, default={}, help_text=u'快递信息') tracking_signed = models.BooleanField(_(u'tracking_signed'), default=False, help_text=u'快递是否已签收') back_express_name = models.CharField(_(u'back_express_name'), max_length=255, blank=True, null=True, help_text=u'寄回快递公司') back_express_com = models.CharField(_(u'back_express_com'), max_length=255, blank=True, null=True, help_text=u'寄回快递编码') back_tracking_number = models.CharField(_(u'back_tracking_number'), max_length=255, blank=True, null=True, help_text=u'寄回快递单号') back_tracking_info = JSONField(_(u'back_tracking_info'), blank=True, null=True, default={}, help_text=u'寄回快递信息') back_tracking_signed = models.BooleanField(_(u'back_tracking_signed'), default=False, help_text=u'寄回快递是否已签收') # 寄出运送中、已签收修理中、已修复寄回、寄回签收 maintenance_status = models.CharField(_(u'maintenance_status'), max_length=8, default=TRACKING_TO_DESPATCH, help_text=u'维修状态') maintenance_status_at = JSONField(_(u'maintenance_status_at'), blank=True, null=True, default={}, help_text=u'维修状态变更时间') class Meta: verbose_name = _(u'维修信息') verbose_name_plural = _(u'维修信息') def __unicode__(self): return '%d' % self.pk @property def data(self): try: model = ModelInfo.objects.get(model_id=self.model_id, status=True) except ModelInfo.DoesNotExist: model = None return { 'maintenance_id': self.pk, 'user_id': self.user_id, 'name': self.name, 'phone': self.phone, 'address': self.address, 'model_id': self.model_id, 'model_name': model.model_name if model else '', 'model_full_name': model.model_full_name if model else '', # 'model_image_url': model.image2_url, 'log_id': self.log_id, 'sn': self.sn, 'desc': self.desc, 'point_id': self.point_id, 'point_name': self.point_name, 'express_name': self.express_name, 'express_com': self.express_com, 'tracking_number': self.tracking_number, 'tracking_info': self.tracking_info, 'tracking_signed': self.tracking_signed, 'back_express_name': self.back_express_name, 'back_express_com': self.back_express_com, 'back_tracking_number': self.back_tracking_number, 'back_tracking_info': self.back_tracking_info, 'back_tracking_signed': self.back_tracking_signed, 'maintenance_status': self.maintenance_status, 'maintenance_status_at': {k: tc.local_string(utc_dt=tc.string_to_utc_datetime(v, format='%Y-%m-%dT%H:%M:%S.%fZ')) for k, v in self.maintenance_status_at.items()}, 'created_at': tc.local_string(utc_dt=self.created_at), 'updated_at': tc.local_string(utc_dt=self.updated_at), }