ObjectChoiceField字段符合我的所有要求,但它并不漂亮.
这就是我所拥有的:
String pets[] = {"Dog", "Cat", "Duck" };
ObjectChoiceField dd = new ObjectChoiceField("My Pet",pets,0,ObjectChoiceField.FIELD_LEFT);
Run Code Online (Sandbox Code Playgroud)
但我宁愿在下拉列表中有图片.我的理解是对象数组必须包含支持toString方法的对象.我必须有一种方法可以在其他应用程序中看到它,我在API中找不到正确的对象.
它不必是ObjectChoiceField.
我有像这样的sqlalchemy关系(为简单而修剪):
class Parent(Base):
__tablename__ = 'Parent'
name = Column(String, nullable=False)
def __init__(self, name)
self.name = name
class Child(Base):
__tablename__ = 'Child'
name = Column(String, nullable=False)
parent = relationship(Parent, backref=backref('children')
def __init__(self, name, parent)
self.name = name
self.parent = parent
Run Code Online (Sandbox Code Playgroud)
在我的对象工作的同时:
parent = Parent("my parent")
db_session.add(parent) # must be done for other reasons not relevant to the issue.
child = Child("my child", parent)
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.但是在我执行以下操作之前,我得到了一个DB flush:
children = parent.children # using the backref causes a flush
Run Code Online (Sandbox Code Playgroud)
通过改变我定义backref /关系的方式可以避免这种情况吗?
我们有一些可以长时间工作的旧代码:
public static Intent getIntent(PendingIntent pendingIntent) {
Intent intent = null;
try {
Method getIntent = PendingIntent.class.getDeclaredMethod("getIntent");
intent = (Intent) getIntent.invoke(pendingIntent);
} catch (Exception e) {
// Log line
}
return intent;
}
Run Code Online (Sandbox Code Playgroud)
我们现在收到一个安全异常:
java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at com.company.util.IntentUtils.getIntent(IntentUtils.java:160)
Caused by: java.lang.SecurityException: Permission Denial: getIntentForIntentSender() from pid=28128, uid=10127 requires android.permission.GET_INTENT_SENDER_INTENT
at android.os.Parcel.readException(Parcel.java:1683)
at android.os.Parcel.readException(Parcel.java:1636)
at android.app.ActivityManagerProxy.getIntentForIntentSender(ActivityManagerNative.java:5924)
at android.app.PendingIntent.getIntent(PendingIntent.java:987)
... 17 more
Run Code Online (Sandbox Code Playgroud)
可能与AOSP更改有关:https ://android.googlesource.com/platform/frameworks/base/+/e5ad41b%5E! /
任何帮助的意图将不胜感激。