Код: Выделить всё
#this startup script for qgis 2.xx prevents violation of the
#unique ID constraint when committing a SQLite-based data source
#dr_gis at mail.ru
from qgis.core import QgsMapLayerRegistry
from qgis.utils import iface
def filterSQLiteBasedSource(l):
if l and l.type()==0 and l.dataProvider().storageType() in ('GPKG', 'SQLite', 'SpatiaLite'):
l.beforeCommitChanges.connect(dropId)
def dropId():
for f in iface.activeLayer().editBuffer().addedFeatures():
iface.activeLayer().changeAttributeValue(f,0,None,None)
QgsMapLayerRegistry.instance().layerWasAdded.connect(filterSQLiteBasedSource)
Увы, решение уже не столь актуально, как 2-3 года назад, но лучше поздно, чем никогда, пока qgis2 все еще остается в деле.