小编Abi*_* Mg的帖子

Django Rest Framework:如何为基于函数的视图启用swagger文档

我浏览了Django REST Swagger 2.1.2文档.当我尝试使用基于类的视图时,它工作正常.

但我没有找到任何关于如何为基于函数的视图启用swagger的参考,如下所示:

@api_view(['GET', 'POST'])
def app_info(request): 
    ...
    return response
Run Code Online (Sandbox Code Playgroud)

我的大多数views.py都充满了基于功能的视图,就像上面一样.

如何启用相同的任何帮助将非常感激.谢谢!

我正在使用Django:1.8; Django REST Swagger:2.1.2; DRF:3.6.2

python django swagger django-rest-framework django-swagger

17
推荐指数
1
解决办法
2215
查看次数

Django:何时运行makemigrations?

除了向模型添加/删除/修改字段外,Django还会在向模型添加或修改方法时检测更改.

所以我的问题是,makemigrations每当我在模型中更改或添加新方法时,我应该运行吗?

django django-models models

6
推荐指数
1
解决办法
1万
查看次数

限制文件上传仅限音频和视频格式

如何在 Django 中添加仅接受特定文件的音频和视频文件字段?

请用 1 个例子来解释一下。

模型.py

class Post(models.Model):
     audio_file = models.FileField(upload_to = u'mp3/', max_length=200)
     video_file = models.FileField(upload_to = u'video/', max_length=200)
Run Code Online (Sandbox Code Playgroud)

表格.py

class PostForm(forms.Form):
     audio_file = forms.FileField( label = _(u"Audio File" ))
     video_file = forms.FileField( label = _(u"Video File" ))
Run Code Online (Sandbox Code Playgroud)

django django-templates

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

Django休息框架:在创建Http POST请求时'create()'NotImplementedError

在Django中发出post请求时,我得到错误,当我确实在我的序列化文件中实现它时,'create()'尚未实现

from rest_framework import serializers
from people.models import People

class PeopleSerializer(serializers.Serializer):
    pk = serializers.IntegerField(read_only=True)
    name = serializers.CharField(max_length=200)
    favoriteCity = serializers.CharField(max_length=200)

    def create(self, validated_data):
        return People.objects.create(**validated_data)

    def update(self, instance, validated_data):
        instance.name = validated_data.get('name', instance.name)
        instance.favoriteCity = validated_data.get(
                                'favoriteCity',instance.favoriteCity)
        instance.save()
        return instance()
Run Code Online (Sandbox Code Playgroud)

显然,create方法已经实现,我不明白为什么我会得到一个NotImplementedError

django http django-rest-framework

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

Django 服务器无提示地失败,不响应任何请求

我有一个基于 Django 的项目。我们添加了一堆新的应用程序 (3-4),但服务器不响应任何请求。日志清晰。它甚至不记录 GET/POST 请求。在浏览器中我看到:

\n\n
This site can\xe2\x80\x99t be reached\n\nlocalhost refused to connect.\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想,这个问题出现在新应用程序中,所以我将其从 中删除INSTALLED_APPS,但结果是相同的。所以我试图找出问题所在settings.py,但结果仍然相同。

\n\n

之后我通过netstat和检查我的端口nmap,我惊呆了,因为端口 8000 是空的。

\n\n
root@artem-debian:/home/artem# nmap -sT -O localhost\n\nStarting Nmap 6.47 ( http://nmap.org ) at 2017-05-19 10:20 EEST\nNmap scan report for localhost (127.0.0.1)\nHost is up (0.00018s latency).\nOther addresses for localhost (not scanned): 127.0.0.1\nNot shown: 994 closed ports\nPORT     STATE SERVICE\n22/tcp   open  ssh\n25/tcp   open  smtp\n111/tcp  open  rpcbind\n631/tcp  open  ipp\n902/tcp  open  iss-realsecure\n3306/tcp open  mysql\nDevice …
Run Code Online (Sandbox Code Playgroud)

python linux django debian localhost

5
推荐指数
0
解决办法
870
查看次数

从ajax中的服务器响应中获取excel文件(.xlsx)

在使用该文件获得响应(成功ajax方法)后,我在浏览器中获取excel文件和打开下载窗口时遇到问题.我有合适的Content-Type and Content-Disposition headers,我尝试在js中使用Blob而我无法实现我想要的 - 简单的文件下载.
我完成了我的ajax的几个版本,其中一个版本在下面.我开发了ajax,它返回excel文件,因为它已损坏而无法正常打开(尽管扩展名为.xlsx).

也许问题是Blob构造函数中使用的不适当的数据类型?

我尝试使用"xhr.response"而不是成功方法参数中的"data",但它也不起作用.我在Chrome中的开发者工具中检查了响应标题,并且设置正确.
重要的是 - 在服务器端创建的所有excel工作簿都是正确的,因为它在先前版本中工作时数据是在URL中发送的,而不是在ajax发布中.

Java/Spring服务器端的控制器方法如下:

response.reset();
response.setContentType("application/vnd.ms-excel");
response.addHeader("Content-Disposition","attachment;filename=\"" + className + " " +  title + ".xlsx\"");
    try (ServletOutputStream output = response.getOutputStream()){
        workbook.write(output);
        output.flush();
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
Run Code Online (Sandbox Code Playgroud)

我的Ajax下载文件并打开下载窗口:

$.ajax({
    url: myUrl,
    type: 'POST',
    data: myData,
    success: function(data, status, xhr) {
        var contentType = 'application/vnd.ms-excel';

        var filename = "";
        var disposition = xhr.getResponseHeader('Content-Disposition');
        if (disposition && disposition.indexOf('attachment') !== -1) {
            var filenameRegex = …
Run Code Online (Sandbox Code Playgroud)

javascript ajax excel content-type content-disposition

5
推荐指数
2
解决办法
2万
查看次数

how to cast the output of Count() in django to FloatField in django 1.8

I am using django 1.8.

I have two models:-

class Query(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    title = models.TextField()
    details = models.TextField()
    pub_date = models.DateTimeField('date published')
    post_score=models.FloatField(default=0.0)
    ....

class Tags(models.Model):
    """docstring for Tags"""
    tagname=models.TextField()
grouppostlist=models.ManyToManyField(Query,through='GroupPostsTag',through_fields=('tag','query'))

# and another model(it stores tags for a query)

class GroupPostsTag(models.Model):
    query=models.ForeignKey('Query')
    tag=models.models.ForeignKey('Tags')
Run Code Online (Sandbox Code Playgroud)

Now I want to sort queries based on the sum of "number of tags" and query's "post_score". I am looking for something like this:-

tagged_user_posts = Query.objects.filter(Q(tags__id__in=tags_list)).annotate(num_tags=Cast(Count('tags'),models.FloatField())).annotate(post_scores=F('num_tags')+F('post_score')).order_by('-post_scores')
Run Code Online (Sandbox Code Playgroud)

Cast is provided in django 1.10. So …

django django-models django-orm

3
推荐指数
1
解决办法
1684
查看次数

Django:限制非登录用户访问静态文件夹

我试图限制那些在浏览器中直接点击绝对静态图像 url 路径(www.xyz.com/static/img/sam.png)并访问它的用户。

我尝试使用以下 Django 文档:

https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/apache-auth/

但这也会阻止登录页面中的那些图像(在验证有效用户之前)。

有没有其他有效的方法来限制未登录的用户?

编辑: 我曾提到过这个Django: Serving Media behind Custom URL,但它与 nginx 而不是 apache 相关。并且黑白静态和媒体内容也有区别。我的问题仅与静态内容有关

python apache django mod-wsgi wsgi

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

为什么保存不能在Django中工作?

我正在使用manage.py shell并运行这样的东西:

d=Document.objects.get(pk=1)
d.scores  
{1:0,2:0,3:0}  
d.scores[1]=5
d.scores
{1:5,2:0,3:0} 
d.save()
Run Code Online (Sandbox Code Playgroud)

d在数据库中查看显示它尚未更新.我究竟做错了什么??我查看了这里的内容,但d绝对是一个Document实例.

如果有帮助,models.py看起来像这样:

from django.db import models

class Document(models.Model):
    fileName=models.CharField(max_length=200)    
    fileUrl=models.CharField(max_length=200) 
    scores={1:0,2:0,3:0}  
Run Code Online (Sandbox Code Playgroud)

python django

0
推荐指数
1
解决办法
2587
查看次数

Django 不通过 gmail 发送电子邮件

我正在尝试建立一个在线书店,并且我正在尝试向新签名的用户发送一封验证电子邮件,但由于某种原因没有发送电子邮件,我还尝试在 gmail 中使用特定于应用程序的密码。

将不胜感激。

这是我在 settings.py 中的电子邮件代码

EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'
EMAIL_HOST='smtp.gmail.com'
EMAIL_HOST_USER='kshitu.rangari@gmail.com'
EMAIL_HOST_PASSWORD='jgpcjiajvklxraof'
EMAIL_PORT=587
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'books@pickabook.com'
Run Code Online (Sandbox Code Playgroud)

我的 Views.py 中的代码

from .models import Book

def index (request):
    return render (request,'template.html')

def store (request):
    return render (request, 'store.html' )

def store (request):
    count = Book.objects.all().count()
    context = {
        'count':count,
    }
    return render (request,'store.html',context)
Run Code Online (Sandbox Code Playgroud)

python django

0
推荐指数
1
解决办法
5409
查看次数