小编3ch*_*eel的帖子

当我将Django应用程序部署到Heroku时,为什么不自动运行collectstatic?

我已经关注了关于Django和Static Assets的官方Heroku文档 ; 我已经安装dj-static并将其添加到我的requirements.txt文件中,正确配置了我settings.py文件中的所有变量:

STATIC_ROOT = os.path.join(CONFIG_ROOT, 'served/static/')                       
STATIC_URL = '/static/'                                                         

STATICFILES_DIRS = (                                                            
    os.path.join(CONFIG_ROOT, 'static'),                                        
)
Run Code Online (Sandbox Code Playgroud)

这就是我的wsgi.py样子:

import os                                                                       
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_django_project.settings")                                                                 

from django.core.wsgi import get_wsgi_application
from dj_static import Cling
application = Cling(get_wsgi_application())
Run Code Online (Sandbox Code Playgroud)

内容Procfile:

web: gunicorn --bind 0.0.0.0:$PORT my_django_project.wsgi:application 
Run Code Online (Sandbox Code Playgroud)

在文档中,它表示"collectstatic在配置正确时会自动运行".但是当我导航到我的网站时,显然没有css.

我尝试使用调试heroku run,但只是按预期复制静态文件.

我注意到当我collectstatic在我的命令中包含命令时Procfile,即

web: python my_django_project/manage.py collectstatic --noinput ; gunicorn -b 0.0.0.0:$PORT my_django_project.wsgi:application
Run Code Online (Sandbox Code Playgroud)

...按预期工作,并提供静态文件.

然而,有什么奇怪的是当我跑步heroku run bash并查看STATIC_ROOT …

django heroku static-files procfile

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

如何将上下文变量从视图传递到Django模板中的自定义字段/小部件?

我已经为子类提供的表单定义了一个自定义字段和小部件UpdateView。因此,如下所示:

myapp/forms.py

from .form_fields import MyCustomField
from .widgets import MyCustomWidget

class MyModelForm(forms.ModelForm):

    my_field = MyCustomField(queryset=MyModel.objects.all(), widget=MyCustomWidget)
Run Code Online (Sandbox Code Playgroud)

myapp/views.py

from django.views.generic import UpdateView
from .forms import MyModelForm

class MyView(UpdateView):
    form_class = MyModelForm
Run Code Online (Sandbox Code Playgroud)

myapp/widgets.py

from django.forms import Widget
from django.template.loader import render_to_string
from django.utils.safestring import mark_safe

class MyCustomWidget(Widget):
    context_data = { 'custom_data': custom_data }
    html_output = render_to_string('myapp/widgets/my_custom_widget.html', context_data)
    return mark_safe(html_output)
Run Code Online (Sandbox Code Playgroud)

基本上,我希望能够custom_data从我的视图(例如,从会话存储或表单实例)传递到小部件。

django django-forms django-views django-widget

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

Hyperledger Fabric中的链码容器是什么?

Chaincode已经安装在对等文件系统中.为什么实例化链代码启动链代码容器?链码容器的目的是什么?

hyperledger hyperledger-fabric

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

了解目录结构建议

我开始在Django示例项目中创建第一个命令:

django-admin.py startproject test

给我:

- root
  - test
    - __init__.py 
    - settings.py 
    - urls.py 
    - wsgi.py 
    - manage.py
Run Code Online (Sandbox Code Playgroud)

现在我创建第一个应用程序

python manage.py startapp foo

它为我创建了文件夹 root/foo

所以我应该如何理解我的root/test文件夹.这个文件夹是否为我的项目的全局配置而已?(类似于Symfony 2 app文件夹)

我很困惑因为Django docs告诉我:

内部mysite /目录是项目的实际Python包

但是manage.py startapp foo在root下创建应用程序,而不是root/test(mysite等效)

[编辑]

两个命令:

python manage.py startapp app
Run Code Online (Sandbox Code Playgroud)

和:

django-admin.py startapp app
Run Code Online (Sandbox Code Playgroud)

在项目根目录中给我app,而不是在 root/name_of_generated_project

Django 1.4

[编辑] 2

对不起,伙计们,我的错,现在一切都好.

[编辑] 3

我想再次创建另一个项目:

django-admin.py startproject jobeet

我的初始结构与上面类似.

现在我想尝试创建app(在jobeet文件夹中):

django-admin.py startapp jobs

而我最终jobeet/jobs没有jobeet/jobeet/jobs

再次:/

所以在我的项目根目录中我有:

- jobeet
- jobs …
Run Code Online (Sandbox Code Playgroud)

django configuration structure directory-structure

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

为什么从 INSTALLED_APPS 中删除“django.contrib.sites”会修复我突然遇到的“DoesNotExist at /admin/”错误?

昨天我设置了一个新的 Django 应用程序,当我停止工作时,管理员仍然正常。今天早上我运行服务器,我看到这个错误页面:

DoesNotExist at /admin/
Site matching query does not exist.
Run Code Online (Sandbox Code Playgroud)

我没有触及任何代码或对数据库进行任何更改。在寻找答案时,我看到了这篇文章,确实,'django.contrib.sites'INSTALLED_APPS我的settings.py文件中删除确实“解决”了问题,但现在我想知道为什么. INSTALLED_APPS昨天我还在工作的时候显然有那条线,但我想知道为什么从那时起我没有接触任何代码,为什么它今天突然停止工作。

django django-admin

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

运行`foreman start` /将Django应用程序部署到Heroku的问题

这就是我的目录结构(我只包括相关部分):

my_git_root/
??? Procfile
??? README.md
??? requirements.txt
??? my_django_project
    ??? app1
    ?   ??? admin.py
    ?   ??? __init__.py
    ?   ??? models.py
    ?   ??? tests.py
    ?   ??? urls.py
    ?   ??? views.py
    ??? fabfile.py
    ??? app2
    ?   ??? __init__.py
    ?   ??? models.py
    ?   ??? templates
    ?   ??? tests.py
    ?   ??? views.py
    ??? manage.py
    ??? my_django_project
        ??? __init__.py
        ??? settings
        ?   ??? base.py
        ?   ??? __init__.py
        ?   ??? local.py
        ?   ??? production.py
        ?   ??? staging.py
        ??? static
        ??? urls.py
        ??? wsgi.py
Run Code Online (Sandbox Code Playgroud)

遵循官方Heroku文档 …

django directory-structure heroku foreman procfile

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

使用Django Shell实例化具有Foreignkey属性的对象

我的问题很简单:

在Django Shell中,如何实例化需要外键属性的对象?

models.py

class Musician(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    instrument = models.CharField(max_length=100)

class Album(models.Model):
    artist = models.ForeignKey(Musician)
    name = models.CharField(max_length=100)
    release_date = models.DateField()
    num_stars = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

在django shell中...

p = Person(
        first_name="Fred"
       ,last_name="Flintstone"
       ,instrument="guitar"
    )

p.save()

...

a = Album(
        artist = " "               #<------ WHAT DO I PUT HERE ? :)))))
       ,name="u rock "
       ,release_date ="today"
       ,num_stars="4"
     )
a.save()
Run Code Online (Sandbox Code Playgroud)

谢谢!

艾玛迪斯

shell foreign-keys django-models

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

Python - 在派生类定义中附加到类级别列表

class A (object):
    keywords = ('one', 'two', 'three')

class B (A):
    keywords = A.keywords + ('four', 'five', 'six')
Run Code Online (Sandbox Code Playgroud)

有没有什么办法改变A.keywords<thing B derives from>.keywords,有点像super(),但预__init__/self?我不喜欢在定义中重复类名.

用法:

>>> A.keywords
('one', 'two', 'three')
>>> B.keywords
('one', 'two', 'three', 'four', 'five', 'six')
Run Code Online (Sandbox Code Playgroud)

python class-variables

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

只有返回一个布尔值,才能在Django管理员中显示一个布尔图标,否则实际返回值?

是的,我知道myfield.boolean = True.我要问的是,是否有可能做到这样的事情:

def get_nominees(self, obj):
    return ", ".join([nominee.name for nominee in obj.nominees.all()]) \  # returns a string
        or False  # returns a False icon
Run Code Online (Sandbox Code Playgroud)

当我尝试这样做时,例如get_nominees.boolean = True,我得到了一个KeyError.

django django-admin

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

为什么Django不能反转这个带有一个可选参数的url正则表达式?

blog在我的root url conf 下有一个应用程序命名空间:

urlpatterns = patterns('',                                                                                                                                                                                                                                                    
    url(r'^blog/', include('blog.urls', namespace='blog')),                   
)
Run Code Online (Sandbox Code Playgroud)

这是我对博客索引的正则表达式blog.urls:

urlpatterns = patterns('', 
    url(r'^(?:(?P<page_num>\d+)/)?$', views.index, name='index'),
)
Run Code Online (Sandbox Code Playgroud)

这是我的博客索引视图:

def index(request, page_num):
    if not page_num:
        return redirect('blog:index', args=[1])
    post_list = Post.objects.all()
    p = Paginator(post_list, 10)

    try:
        posts = p.page(page_num)
    except PageNotAnInteger:
        posts = p.page(1)
    except EmptyPage:
        posts = p.page(p.num_pages)

    return render(request, 'blog/index.html', { 'post_list': posts })
Run Code Online (Sandbox Code Playgroud)

基本上,我想要的是/blog/1/在你导航时将网址重定向到/blog/,这就是为什么我做了page_num可选的.而且,当然要去/blog/n/哪里np.page_range应该导航到相应的页面分页.

但是,当我去/blog//blog/1/没有任何负载,并最终Django给我"没有收到数据"错误.我觉得我正在写我的正则表达式错误,但我尝试了一些排列并且没有任何运气(大多数给我"找不到页面"错误).

我也在官方Django文档中尝试过 …

regex django routing django-urls

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