text jsonfield django json场没有保存

txt
if it doesn't save, check that you are not modifying an object contained in a list.

You have to extract it from the list and then you modify the JSONFIELD

text Twig SVG包括

twig-SVG-include
{% include '@atoms/07-icons/_icon.twig' with { icon: 'email' } %}

text Twig修饰符类

twig-modifier-class
{% set staff_base_class = 'staff-card' %}
 
{% set modifiers = [
  photo ? 'has-photo' : 'no-photo',
  email ? 'has-email' : 'no-email'
] %}
 
<div {{ bem(staff_base_class, modifiers) }}>
<p>If the component has a photo but no email address, the output classes for this div would be "staff-card staff-card--has-photo staff-card--no-email"</p>
</div>

text ORCL - 闪回查询

Flashback Query
create table GHP01.hrorg_12h as
select * from GHP01.hrorg as of timestamp to_timestamp('2019-06-13 12:00:00', 'YYYY-MM-DD HH24:MI:SS') ;

truncate table GHP01.hrorg;
insert into GHP01.hrorg select * from GHP01.hrorg_12h;
commit;

text ENQUEQUE / DEQUEQUE TABLE

Bloccare e sbloccare una tabella

enq_deq_table
1. Creare "oggetto di blocco" in SE11
2. Nel codice richiamare FM - ENQUEUE_EZ_ZTABLENAME per bloccare
3. Per sbloccare FM - DEQUEUE_EZ_ZTABLENAME

text MVC部分视图提示

MVC Partial View Tips

Place "~/assets/js/jquery-2.1.4.min.js" in the begining of page.

@section SectionName {} defined in partial view will not work in partial view as the partial views are not derived from _Layout page and only in _Layout page we render sections.
@section will work only in MainViews are it is derived from _Layout

If RenderPartial is used the PartialView is loaded along with the main view and jQuery(function ($) {} is called from Main as well as Child View(In chlid view when @section not used for scripts)

In child view use if ($('#dynamic-table').length > 0) {} to check if the element exists because this is called along with main view load and at that time child view element is not loaded

text 代码片段很有用

DSFSDFSDF
LISTING THE INVOICE LINE IF THERE ARE MORE THAN 1
% for o in object.invoice_id.invoice_line
				<tr>
					<td>${(o.price_subtotal or '')}</td>
					<td></td>
					<td></td>
					<td></td>
					<td></td>
					<td></td>
					<td></td>
				</tr>
			% endfor

text DT配置调试fpm

debug_config
zend_extension=xdebug.so
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 0
xdebug.remote_port = 9000
xdebug.remote_host = 10.25.9.116

export PHP_IDE_CONFIG ="serverName=xdebug"


https://gist.github.com/esilvajr/df244d5c8459403ee68eaf83773054e4


Works for DT Postman: 
PHP_IDE_CONFIG=serverName=xdebug
XDEBUG_CONFIG=remote_host=10.25.9.3 remote_connect_back=0

Better to follow advice
https://stackoverflow.com/questions/50155844/cannot-parse-server-name-for-external-xdebug-connection

text 来自Codyhouse框架的Browserlist片段源代码

来自Codyhouse框架的Browserlist片段源代码

.browserlistrc
>= 1%
last 1 major version
not dead
Chrome >= 45
Firefox >= 38
Edge >= 12
ie 9-11
iOS >= 9
Safari >= 9
Android >= 4.4
Opera >= 30

text Android的应用开发之Android7.1.1出现吐司崩溃问题的解决方案

Android7.1.1Toast
Android应用开发之Android7.1.1出现Toast崩溃问题的解决方案
凌雪2018-09-12来源 :网络阅读 212评论 0
摘要:本文将带你了解Android应用开发之Android7.1.1出现Toast崩溃问题的解决方案,希望本文对大家学Android有所帮助。

本文将带你了解Android应用开发之Android7.1.1出现Toast崩溃问题的解决方案,希望本文对大家学Android有所帮助。



概述
Toast作为Android应用中最常见的一种提示方式,由于简单的api设计和简洁的交互体验被我们广泛使用,但是这并代表他很完美,本文将记录我在开发中遇到的问题。
    背景
    最近项目好多用户反应有bug,然后看log出现了一个奇怪的问题,而且次数不很多,如下:
#1664   android.view.WindowManager$BadTokenExceptionUnable to add window -- window   android.view.ViewRootImpl$W@4a51004 has already been   addedandroid.view.ViewRootImpl.setView(ViewRootImpl.java:695)android.view.ViewRootImpl.setView(ViewRootImpl.java:691)android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:342)android.view.WindowManagerImpl.addView(WindowManagerImpl.java:94)android.widget.Toast$TN.handleShow(Toast.java:506)android.widget.Toast$TN$2.handleMessage(Toast.java:389)android.os.Handler.dispatchMessage(Handler.java:102)android.os.Looper.loop(Looper.java:154)   android.app.ActivityThread.main(ActivityThread.java:6292)   java.lang.reflect.Method.invoke(Native   Method)com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:906)com.android.internal.os.ZygoteInit.main(ZygoteInit.java:796)
然后发现居然都是7.1.1设备才出现的,见下图:
    
    Toast显示与隐藏
    首先Toast显示依赖于一个窗口,这个窗口被WMS管理(WindowManagerService),当需要show的时候这个请求会放在WMS请求队列中,并且会传递一个TN类型的Bider对象给WMS,WMS并生成一个token传递给Android进行显示与隐藏,但是如果UI线程的某个线程发生了阻塞,并且已经NotificationManager检测已经超时就不删除token记录,此时token已经过期,阻塞结束的时候再显示的时候就发生了异常。
    在android7.1.1的Toast源码handleShow是这样写的:
    ?1mWM.addView(mView, mParams);
    而在8.0则是这样的:
    ?123456try   {          mWM.addView(mView,   mParams);          trySendAccessibilityEvent();        }   catch (WindowManager.BadTokenException e)   {          /* ignore   */        }
    到这里能看到在发生异常的时候使用了try   catch捕获,程序不会挂掉
    解决方案
    /** * @author CH * @date   2018/6/26 * 部分7.1.1手机崩溃Toast解决方案 */public class ToastCompat {  private static   Field sField_TN;  private static Field   sField_TN_Handler;  private Toast mToast;   static   {    try {      sField_TN =   Toast.class.getDeclaredField("mTN");      sField_TN.setAccessible(true);      sField_TN_Handler   = sField_TN.getType().getDeclaredField("mHandler");      sField_TN_Handler.setAccessible(true);     }   catch (Exception e)   {     }   }   private   static void hook(Toast toast) {    try {      Object   tn = sField_TN.get(toast);      Handler   preHandler = (Handler)   sField_TN_Handler.get(tn);      sField_TN_Handler.set(tn,   new SafelyHandlerWarpper(preHandler));     } catch   (Exception e)   {     }   }   public   void showToast(Context context, CharSequence cs, int length)   {    if (mToast == null) {      mToast   = Toast.makeText(context, cs, length);     } else   {      mToast.setText(cs);     }    hook(mToast);    mToast.show();   }   public   static class SafelyHandlerWarpper extends Handler   {    private Handler   impl;     public SafelyHandlerWarpper(Handler impl)   {      this.impl =   impl;     }     @Override    public   void dispatchMessage(Message msg) {      try   {        super.dispatchMessage(msg);       }   catch (Exception e)   {       }     }     @Override    public   void handleMessage(Message msg)   {      impl.handleMessage(msg);//需要委托给原Handler执行     }   }}    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!