我已经关注了关于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 …
我已经为子类提供的表单定义了一个自定义字段和小部件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从我的视图(例如,从会话存储或表单实例)传递到小部件。
Chaincode已经安装在对等文件系统中.为什么实例化链代码启动链代码容器?链码容器的目的是什么?
我开始在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 应用程序,当我停止工作时,管理员仍然正常。今天早上我运行服务器,我看到这个错误页面:
DoesNotExist at /admin/
Site matching query does not exist.
Run Code Online (Sandbox Code Playgroud)
我没有触及任何代码或对数据库进行任何更改。在寻找答案时,我看到了这篇文章,确实,'django.contrib.sites'从INSTALLED_APPS我的settings.py文件中删除确实“解决”了问题,但现在我想知道为什么. INSTALLED_APPS昨天我还在工作的时候显然有那条线,但我想知道为什么从那时起我没有接触任何代码,为什么它今天突然停止工作。
这就是我的目录结构(我只包括相关部分):
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)
我的问题很简单:
在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)
谢谢!
艾玛迪斯
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) 是的,我知道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.
我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/哪里n是p.page_range应该导航到相应的页面分页.
但是,当我去/blog/或/blog/1/没有任何负载,并最终Django给我"没有收到数据"错误.我觉得我正在写我的正则表达式错误,但我尝试了一些排列并且没有任何运气(大多数给我"找不到页面"错误).
我也在官方Django文档中尝试过 …
django ×7
django-admin ×2
heroku ×2
procfile ×2
django-forms ×1
django-urls ×1
django-views ×1
foreign-keys ×1
foreman ×1
hyperledger ×1
python ×1
regex ×1
routing ×1
shell ×1
static-files ×1
structure ×1