当使用支持库v23.1.1插件并在Android 4.4.4(API 19)下运行时,该应用程序运行正常:
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
Run Code Online (Sandbox Code Playgroud)
然而,当我使用更新版本(23.2)的android支持库构建它时,它会崩溃:
XmlPullParserException: Binary XML file line #17: invalid drawable tag vector
当应用想要使用简单的自定义视图来充气警报对话框时,会发生这种情况.自定义视图使用包含<shape>标记的XML文件作为其drawable之一.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid
android:color="@android:color/white" >
</solid>
<corners
android:radius="5dp">
</corners>
<stroke android:width="1dp" android:color="@color/AppColor" />
</shape>
Run Code Online (Sandbox Code Playgroud)
虽然我无法在崩溃日志中明确指出这个基于SVG的drawable,但我的猜测是因为Google引入了支持VectorDrawables,它与我的应用程序发生了某种程度的冲突.
任何有关如何查明罪魁祸首的提示或输入都表示赞赏.
我试图将图像添加到QGraphicsView/ QGraphicsScene后来我可以根据用户的输入在其上绘制简单的几何图形.QGraphicsView无论宽高比如何,我都需要确保图像适合.为此,我正在使用QGraphicsView::fitInView
如果我使用,我可以成功添加,显示和调整图像 QGraphicsScene::addPixmap
from PySide import QtGui
import sys
app = QtGui.QApplication(sys.argv)
scn = QtGui.QGraphicsScene()
view = QtGui.QGraphicsView(scn)
pixmap = QtGui.QPixmap("image.png")
gfxPixItem = scn.addPixmap(pixmap)
view.fitInView(gfxPixItem)
view.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)
然而,如果不是使用QGraphicsScene::addPixmap,我先创建一个QGraphicsPixmapItem,并用它添加到场景中QGraphicsScene::addItem,我收到了段错误!
from PySide import QtGui
import sys
app = QtGui.QApplication(sys.argv)
scn = QtGui.QGraphicsScene()
view = QtGui.QGraphicsView(scn)
pixmap = QtGui.QPixmap("image.png")
pixItem = QtGui.QGraphicsPixmapItem(pixmap)
gfxPixItem = scn.addItem(pixItem)
view.fitInView(gfxPixItem) # Crashes, see below for call stack in OSX
view.show() …Run Code Online (Sandbox Code Playgroud) 假设我的应用程序中有三个模型,可让用户为一本书撰写评论。要求是每个用户只能对每本书进行一次评论。
Reviewmodel 有两个外键User和Bookmodels。我希望能够在创建模型实例之前验证用户输入Review,以确保用户不能为每本书创建多个评论。
如果我要求用户提供发送到 DRF 版本 3.+ 的数据中的User和信息,我知道该怎么做。Book
但是发布新内容的 url中Review包含Bookid,并且用户已通过身份验证:
用于list和create评论的网址:/book/{book_id}/reviews/
现在,当我对POSTurl 执行操作时,DRF 抱怨该book字段是必需的,即使我尝试将关键字参数发送到重载perform_create函数(请参阅下面的代码片段)
我的猜测是我应该将嵌入在网址中的有关书籍和评论的信息发送request到默认值UniqueTogetherValidator,但我不知道该怎么做!
我在这个问题中看到了部分解决方案,但我的问题是我不仅必须向验证器提供当前经过身份验证的用户,而且还必须提供信息book,因为我需要unique_together约束。
default向田地提供 kwarg,但没有成功。所以我的问题是,当信息嵌入并且信息是传入的一部分时,如何验证unique_together用户请求的输入数据(而这两者都是相关的外键而不是模型的本地属性)?bookurluserrequestReview
这是我的模型和序列化器:
class Review(models.Model):
# Relationships
book = models.ForeignKey(Book)
user = models.ForeignKey(User)
comment = models.TextField(null=True, blank=True)
class …Run Code Online (Sandbox Code Playgroud)