小编lis*_*oss的帖子

在build.gradle中使用android支持库23.2崩溃app(XmlPullParserException:XmlPullParserException:无效的drawable标签向量)

当使用支持库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,它与我的应用程序发生了某种程度的冲突.

任何有关如何查明罪魁祸首的提示或输入都表示赞赏.

svg android custom-controls android-support-library

11
推荐指数
2
解决办法
5920
查看次数

使用QGraphicsScene :: addItem将QPixmap项添加到QGraphicsScene会导致PySide崩溃

我试图将图像添加到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)

python qt qgraphicsview pyside qgraphicsscene

5
推荐指数
1
解决办法
6084
查看次数

如何验证模型的两个(外键)相关字段的共同唯一性?

假设我的应用程序中有三个模型,可让用户为一本书撰写评论。要求是每个用户只能对每本书进行一次评论。

Reviewmodel 有两个外键UserBookmodels。我希望能够在创建模型实例之前验证用户输入Review,以确保用户不能为每本书创建多个评论。

如果我要求用户提供发送到 DRF 版本 3.+ 的数据中的User和信息,我知道该怎么做。Book

但是发布新内容的 url中Review包含Bookid,并且用户已通过身份验证:

用于listcreate评论的网址:/book/{book_id}/reviews/

现在,当我对POSTurl 执行操作时,DRF 抱怨该book字段是必需的,即使我尝试将关键字参数发送到重载perform_create函数(请参阅下面的代码片段)

我的猜测是我应该将嵌入在网址中的有关书籍和评论的信息发送request到默认值UniqueTogetherValidator,但我不知道该怎么做!

我在这个问题中看到了部分解决方案,但我的问题是我不仅必须向验证器提供当前经过身份验证的用户,而且还必须提供信息book,因为我需要unique_together约束。

  • 我曾尝试default向田地提供 kwarg,但没有成功。
  • 还尝试在序列化器中提供自定义验证器,但没有成功。

所以我的问题是,当信息嵌入并且信息是传入的一部分时,如何验证unique_together用户请求的输入数据(而这两者都是相关的外键而不是模型的本地属性)?bookurluserrequestReview

这是我的模型和序列化器:

模型.py

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)

django validation django-rest-framework

5
推荐指数
1
解决办法
1946
查看次数