标签: django-views

如何使用Python查找脚本的目录?

请考虑以下Python代码:

import os
print os.getcwd()
Run Code Online (Sandbox Code Playgroud)

os.getcwd()用来获取脚本文件的目录位置.当我从命令行运行脚本时它给了我正确的路径,而当我从Django视图中的代码运行的脚本运行它时,它会打印出来/.

如何从Django视图运行的脚本中获取脚本的路径?

更新:
总结到目前为止的答案 - os.getcwd()并且os.path.abspath()都给出当前工作目录,该目录可能是也可能不是脚本所在的目录.在我的网站主机设置中__file__只提供没有路径的文件名.

在Python中没有任何方法(总是)能够接收脚本所在的路径吗?

python directory django-views getcwd

451
推荐指数
8
解决办法
40万
查看次数

为什么DEBUG = False设置使我的django静态文件访问失败?

我正在使用Django作为我的主力来构建应用程序.到目前为止一直都很好 - 指定数据库设置,配置静态目录,网址,视图等.但是,当我想要渲染我自己的美丽和自定义404.html和500.html页面时,麻烦开始潜行.

我阅读了有关自定义错误处理的文档,并在UrlsConf中设置了必要的配置,创建了相应的视图,并将404.html和500.html添加到了我的应用程序的模板目录(也在settings.py中指定).

但是文档说you can actually view custom error views until Debug is Off,所以我确实把它关掉来测试我的东西,那就是什么东西变得狂暴!

我不仅无法查看自定义404.html(实际上,它加载,但因为我的错误页面每个都包含一个图形错误消息 - 一些不错的图像),错误页面的源加载,但没有其他任何加载!甚至没有链接CSS或Javascript!

通常,一旦我设置DEBUG = False,所有视图将加载,但任何链接的内容(CSS,Javascript,图像等)将不会加载!发生了什么?关于静态文件和DEBUG设置有什么遗漏吗?

django django-views django-staticfiles

321
推荐指数
12
解决办法
10万
查看次数

如何在基于django类的视图上使用permission_required装饰器

我在理解新CBV如何工作方面遇到了一些麻烦.我的问题是,我需要登录所有视图,其中一些是特定权限.在基于函数的视图中,我使用@permission_required()和视图中的login_required属性执行此操作,但我不知道如何在新视图上执行此操作.django文档中是否有一些部分解释了这一点?我没找到任何东西.我的代码有什么问题?

我尝试使用@method_decorator,但它回复" / errors/prueba/_wrapped_view()中的TypeError至少需要1个参数(0给定) "

这是代码(GPL):

from django.utils.decorators import method_decorator
from django.contrib.auth.decorators import login_required, permission_required

class ViewSpaceIndex(DetailView):

    """
    Show the index page of a space. Get various extra contexts to get the
    information for that space.

    The get_object method searches in the user 'spaces' field if the current
    space is allowed, if not, he is redirected to a 'nor allowed' page. 
    """
    context_object_name = 'get_place'
    template_name = 'spaces/space_index.html'

    @method_decorator(login_required)
    def get_object(self):
        space_name = self.kwargs['space_name']

        for i in self.request.user.profile.spaces.all():
            if i.url …
Run Code Online (Sandbox Code Playgroud)

django django-views django-authentication django-class-based-views class-based-views

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

Django可选的url参数

我有一个像这样的Django网址:

url(
    r'^project_config/(?P<product>\w+)/(?P<project_id>\w+)/$',
    'tool.views.ProjectConfig',
    name='project_config'
),
Run Code Online (Sandbox Code Playgroud)

和我的views.py:

def ProjectConfig(request, product, project_id=None, template_name='project.html'):
    ...
    # do stuff
Run Code Online (Sandbox Code Playgroud)

问题是我希望project_id参数是可选的.我想这样,project_id并且/project_config/都是同样有效的url模式,所以IF /project_config/12345abdce/传递,然后我可以使用它.就目前而言,如果我尝试访问没有project_id参数的url,我会得到404 .

python django django-urls django-views

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

Django在视图中获取静态文件URL

我正在使用reportlab pdfgen来创建PDF.在PDF中有一个由...创建的图像drawImage.为此,我要么需要图像的URL,要么需要视图中图像的路径.我设法建立了URL但是如何获得图像的本地路径?

我如何获得URL:

prefix = 'https://' if request.is_secure() else 'http://'
image_url = prefix + request.get_host() + STATIC_URL + "images/logo_80.png"
Run Code Online (Sandbox Code Playgroud)

django django-views django-staticfiles

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

类没有对象成员

def index(request):
   latest_question_list = Question.objects.all().order_by('-pub_date')[:5]
   template = loader.get_template('polls/index.html')
   context = {'latest_question_list':latest_question_list}
   return HttpResponse(template.render(context, request))
Run Code Online (Sandbox Code Playgroud)

该函数的第一行在Question.objects.all() - > E1101:类'问题has no objects成员`上出错

我遵循Django文档教程,他们有相同的代码并运行.

我试过调用一个实例.

Question = new Question()
and using MyModel.objects.all()
Run Code Online (Sandbox Code Playgroud)

我的那个类的models.py代码也是这个......

class Question(models.Model):
question_text = models.CharField(max_length = 200)
pub_date = models.DateTimeField('date published') 

def was_published_recently(self):
    return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

def __str__(self):
    return self.question_text
Run Code Online (Sandbox Code Playgroud)

无济于事我仍然有这个错误.

我读过有关pylint的内容并且运行了这个......

pylint --load-plugins pylint_django
Run Code Online (Sandbox Code Playgroud)

哪个没有帮助,即使是github自述文件说...

防止有关Django生成的属性(如Model.objects或Views.request)的警告.

我在virtualenv中运行命令,但什么都没有.

所以任何帮助都会很棒

python django django-views

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

Django:我怎样才能看到urlpatterns列表?

如何查看"反向"正在查看的当前urlpatter?

我在一个观点中反向调用我认为应该有效的论据,但事实并非如此.我可以用任何方式检查那里有什么,为什么我的模式不是?

django django-urls django-views

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

禁用ViewSet,django-rest-framework中的方法

ViewSets 有自动方法来列出,检索,创建,更新,删除,...

我想禁用其中的一些,我想出的解决方案可能不是一个好的,因为OPTIONS仍然表示允许的那些.

关于如何以正确的方式做到这一点的任何想法?

class SampleViewSet(viewsets.ModelViewSet):
    queryset = api_models.Sample.objects.all()
    serializer_class = api_serializers.SampleSerializer

    def list(self, request):
        return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED)
    def create(self, request):
        return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED)
Run Code Online (Sandbox Code Playgroud)

python django django-views django-rest-framework

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

删除django中的多个对象

我需要使用网页从django中的数据库中选择几个要删除的对象.没有可供选择的类别,所以我无法从中删除所有这些类别.我是否必须实现自己的删除表单并在django中处理它或django有办法已经这样做了吗?正如它在管理界面中实现的那样.

django django-views

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

Django基于类的视图:如何将其他参数传递给as_view方法?

我有一个基于类的自定义视图

# myapp/views.py
from django.views.generic import *

class MyView(DetailView):
    template_name = 'detail.html'
    model = MyModel

    def get_object(self, queryset=None):
        return queryset.get(slug=self.slug)
Run Code Online (Sandbox Code Playgroud)

我想像这样传入slug参数(或其他参数到视图)

MyView.as_view(slug='hello_world')
Run Code Online (Sandbox Code Playgroud)

我是否需要覆盖任何方法才能执行此操作?

python django django-views django-generic-views

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