我正在使用Django 1.7和django-rest-framework.
我创建了一个API,它返回了一些JSON数据,并将其放入我的 settings.py
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.AllowAny',),
'DEFAULT_RENDERER_CLASSES': (
# 'rest_framework.renderers.XMLRenderer',
'rest_framework.renderers.JSONRenderer',
# 'rest_framework.renderers.BrowsableAPIRenderer',
)
}
Run Code Online (Sandbox Code Playgroud)
当我进行GET调用时,它会返回所有数据,但是当我尝试使用PUT/PATCH时,我得到:
--------Response Headers---------
Status Code: 403
Date: Wed, 29 Oct 2014 18:51:42 GMT
Vary: Cookie
Server: WSGIServer/0.1 Python/2.7.8
Allow: GET, POST, PUT, PATCH, HEAD, OPTIONS
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
---------------------------------
--------Response Body-----------
{"detail": "CSRF Failed: CSRF token missing or incorrect."}
---------------------------------
Run Code Online (Sandbox Code Playgroud)
这只发生在我登录时,如果我是匿名的,我可以正确地进行PUT/PATCH.
我试过了@csrf_exempt,但我得到了错误,我已将其纳入rest_framework.permissions.AllowAny设置......
我不知道是怎么回事.有谁知道这是什么问题?
我有一个PDF文档,我想用我的python应用程序打印它.
我在这里尝试了解决方案(使用python的win32print模块打印PDF文档?)但是当我安装实际版本的Ghostscript 9.15时,它没有gsprint.exe
我正在使用的方式是使用命令,os.startfile('PDFfile.pdf', "print")但它打开默认查看器(我的是Adobe Reader),打印后它仍然打开,试图os.system("TASKKILL /F /IM AcroRD32.exe")杀死其他打开的窗口,我不想要它的过程.
使用下一个命令,它也会打印,但它也会打开Adobe Reader
currentprinter = win32print.GetDefaultPrinter()
win32api.ShellExecute(0, "print", 'PDFfile.pdf', '/d:"%s"' % currentprinter, ".", 0)
Run Code Online (Sandbox Code Playgroud)
我也看到了这个答案,但他们建议gsprint.exe再次使用
有人有gsprint.exe文件或任何其他解决方案吗?
注意:当我使用其他默认程序打开像Chrome或Windows Reader这样的PDF文件时,我总是在执行上述命令'(31, 'ShellExecute', 'A device attached to the system is not functioning.')'或[Error 1155] No application is associated with the specified file for this operation: 'PDFfile.pdf'使用startfile命令时遇到异常
我从这里下载了Google服务示例,当我尝试按照有关JSON的步骤运行它时,会弹出一个错误.问题是控制台和日志没有显示此错误.
看起来像这样.

我不知道我做错了什么,但在此之后,我不能再尝试再次运行它,因为Run按钮被禁用了.
有什么想法解决这个问题?
更新:这是Gradle控制台中的日志:
Configuration on demand is an incubating feature.
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72211Library UP-TO-DATE
:app:prepareComAndroidSupportMediarouterV72200Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42211Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServices750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAds750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAnalytics750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAppindexing750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAppinvite750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAppstate750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesBase750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesCast750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesDrive750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesFitness750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesGames750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesGcm750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesIdentity750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesLocation750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesMaps750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesNearby750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesPanorama750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesPlus750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesSafetynet750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesWallet750Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesWearable750Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets …Run Code Online (Sandbox Code Playgroud) 我在Python 2.7和Django 1.7.1与django-restframework我有一个API,它返回我从数据库采取的一些特定值,它使用这样的自定义序列化器:
class InventarioSerializer(serializers.ModelSerializer):
item = serializers.RelatedField(source='producto.item')
ubicacion = serializers.RelatedField(source='ubicacion.nombre')
class Meta:
model = Inventario
fields = ('epc','item','cantidad','ubicacion')
Run Code Online (Sandbox Code Playgroud)
我的API视图以这种方式调用:
class ItemEnInventarioViewSet(InventarioListModelMixin, viewsets.ModelViewSet):
serializer_class = InventarioSerializer
renderer_classes = (UnicodeJSONRenderer,)
Run Code Online (Sandbox Code Playgroud)
我的ListModelMixin是这样的:
class InventarioListModelMixin(object):
def list(self, request, *args, **kwargs):
item = request.QUERY_PARAMS.get('item', None)
inventario = Inventario.objects.filter(producto__item = item)
if inventario.count() == 0:
return HttpResponse(u"El item %s no se encuentra en el inventario" % item,status=400)
self.object_list = inventario
# Switch between paginated or standard style responses
page = self.paginate_queryset(self.object_list)
if page is not …Run Code Online (Sandbox Code Playgroud) django serialization json django-queryset django-rest-framework
我在装有 Windows Server 2016 的虚拟机中安装了 Docker。
我有一个来自 Python3 的 Linux 容器,带有使用--restart=always参数的 NGINX 服务器,它在我登录时运行良好,如果我重新启动虚拟机,该容器将不再活动,并且仅在我登录时启动。
另外,如果我注销,容器就会停止。
如何使容器在不登录的情况下作为服务运行并在注销时保持运行?
我正在使用Django 1.7.1和python 2.7,我正在做一些需要在事务中的POST请求,实际上我正在使用@transaction.atomic()装饰器使整个函数在一个事务中.
据我所知,这个装饰器类似于commit_on_success并在引发数据库错误时进行回滚.
是否可以引发一个自定义异常,使事务回滚但不使用保存点?我想在回滚完成时返回一个HttpResponse,解释为什么事务没有完成.
我有这个.
@transaction.atomic()
def salida_de_almacen(request):
if request.method == 'POST':
try:
folio = request.POST['folio'] #Folio de la orden
epccoma = request.POST['epc'] #EPCs separados por coma
if folio is None or epccoma is None:
return HttpResponse('Datos Incompletos',status=400)
detalles = ODetalle.objects.filter(orden__folio=folio)
epcs = epccoma.replace(' ','').split(',')
inventario = Inventario.objects.filter(epc__in=epcs)
mal = '' # Items incompletos
for d in detalles:
for i in inventario:
if i.producto.item == d.producto.item:
d.cantidad_entregada+=i.cantidad
i.delete()
if d.cantidad_entregada<d.cantidad_ordenada:
mal+='%s,' % d.producto.item
if mal …Run Code Online (Sandbox Code Playgroud) 我正在使用Django 1.7并且我使用REST Framework,我已经实现了一个简单的API来获取模型中的所有对象,但我想过滤放置外部对象值的结果.
例如,实际上我可以拥有一个包含此URL的对象列表
http://localhost:8000/api/ocompradetalle
Run Code Online (Sandbox Code Playgroud)
如果我只想要一个,我只能像这样放PK(PrimaryKey)
http://localhost:8000/api/ocompradetalle/1/
Run Code Online (Sandbox Code Playgroud)
我想更改主键以按外部字段值进行过滤,我的意思是,我有一个文档(OCompra),其值为"folio"字段,此文档将包含许多详细信息(OCompraDetalle),因此,我想要能够放这样的东西:
http://localhost:8000/api/ocompradetalle/F2033
Run Code Online (Sandbox Code Playgroud)
"F2033"是一个"作品集"值,响应应该在"作品集"字段中为我带来OCompra对象的所有细节.
这就是我现在所拥有的.
urls.py >>我有接收ViewSets的路由器
from rest_framework import routers
from inventario_rfid.views import OCompraViewSet, OCompraDetalleViewSet
from administracion.views import ProductoViewSet
router = routers.DefaultRouter()
router.register(r'ocompra',OCompraViewSet)
router.register(r'ocompradetalle',OCompraDetalleViewSet)
router.register(r'producto',ProductoViewSet)
urlpatterns = patterns('',
...
#APIS
url(r'^api/',include(router.urls)),
)
Run Code Online (Sandbox Code Playgroud)
serializers.py
from rest_framework import serializers
from administracion.serializers import ProductoSerializer
from .models import OCompra, OCompraDetalle
class OCompraSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = OCompra
fields = ('folio','codigo_proveedor','nombre_proveedor','status','fecha','subtotal','iva','envio',
'otro','total',)
class OCompraDetalleSerializer(serializers.HyperlinkedModelSerializer):
producto = ProductoSerializer(many=False)
ocompra = OCompraSerializer(many = False) << I WANT TO FILTER BY …Run Code Online (Sandbox Code Playgroud) 我有一个"Excel模板",我需要打开,编辑一些单元格保持样式(字体,单元格宽度和高度,单元格合并等),最后添加或插入图像(jpg或png)以保存在新的文件.
我现在尝试了4个选项.
我想我也可以使用一些PDF创建器,但我需要保持页面大小,因为我需要将创建的文件发送到打印机,但没有字母或A4大小,我需要打印不同大小的粘性标签.
我的问题是:xlwt有什么解决方案吗?还有其他解决方案吗?
不久前我一直在使用 django-crispy-forms,我想知道是否有办法设置输入的位置,如col-md-XX类或其他东西,使其看起来更好,而不仅仅是字段列表。
下面是一个例子:
这是脆皮形式的“正常”渲染,使用{{ form | crispy }}或{% crispy form %}

我想在 forms.py 或类似的东西中使用 python 代码呈现这样的效果。实际上,我是通过键入 HTML 代码并使用as_crispy_field标记进行渲染来实现的。

最后,当我渲染表单时,{% crispy form %}我可以使用内联样式的单选按钮,但使用as_crispy_field标记,即使InlineRadios在助手中布局,单选按钮仍然看起来垂直。
有没有办法让收音机看起来水平或内联as_crispy_field标签?
我正在使用 MSSQL 数据库,并且在 Django 进入展会之前我已经创建了一些表,因此使用Inspectdb我获得了带有 Meta 选项的模型managed=False。然后我创建了其他与 Django 迁移相关的内容。这些模型是这样的:
class ModelAlreadyCreated(models.Model):
# This PK field is set as varchar(16)
id = models.CharField(primary_key=True, db_column='CVE', max_length=16)
...other fields
class Meta:
managed=False
class DjangoModel(models.Model):
model_ac_fk = models.ForeignKey(ModelAlreadyCreated)
... other fields
Run Code Online (Sandbox Code Playgroud)
当我使用创建迁移文件时,makemigrations我得到:
migrations.CreateModel(
name='DjangoModel',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('model_ac_fk', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ModelAlreadyCreated')),
...
],
),
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切似乎都正常,但使用migrate命令时会显示此错误:
django.db.utils.OperationalError: (1778, "Column 'CVE' is not the same data
type as referencing column 'model_ac_fk' in foreign key 'model_ac_fk_fk_CVE'.DB-Lib error …Run Code Online (Sandbox Code Playgroud) 我有 3 个模型,其中 2 个对应于第一个。
class Parent(models.Model):
name = models.CharField....
...
class Child1(models.Model):
parent = models.ForeignKey(Parent)
...
class Child2(models.Model):
parent = models.ForeignKey(Parent)
...
Run Code Online (Sandbox Code Playgroud)
现在,在我看来,我有 2 个查询集过滤了Child1和Child2对象。
有没有办法检索Parent过滤查询集中的所有对象?
就像是...
children1 = Child1.objects.filter(blah=blah)
children2 = Child2.objects.filter(blah=blah)
parents = Parent.objects.filter(self__in=children1 or self__in=children2)
Run Code Online (Sandbox Code Playgroud)
注意上面的代码根本不起作用,它只是一个想法。