所以,现在当我的DetailView子类没有使用PK(取自URL)找到对象时,我看到了404.html模板页面.我宁愿做的只是重定向到另一个URL.这是我的网址模式:
url(r'^(?P<pk>[0-9]+)/$', DeviceDetailView.as_view(
template_name='devices/detail.html',
queryset=Device.objects.all(),
context_object_name="device",
)),
url(r'^$', FullListView.as_view(template_name='devices/devices.html',)),
Run Code Online (Sandbox Code Playgroud)
所以,如果我的url看起来像/ devices/8 /,它使用8作为主键.当数据库中存在8时,工作得很好.但是,当8不存在时,它将转到404页面.我宁愿它做的是去一个列表 - 事实上,当最后一个url列出FullListView时(当url看起来像/ devices/nonnumericstuff /时会发生这种情况).
看起来应该很容易,不是吗?我不希望所有的404都去那里,所以我不能使用handler404.
像这个问题,我的管理员覆盖不在我的生产环境中工作,但它们在我的开发环境中(相同的django版本).我尝试在settings.py中重新排序INSTALLED_APPS元组而没有任何变化(是上面链接的问题的答案).这是我如何构建我的项目:
/WebDJ/ # project dir
+devices # unrelated app, but it uses templates (see below)
+sales
__init__.py
admin.py
models.py # has Customer and Transaction model classes
+templates
+admin
+sales
+Customer
change_form.html
+Transaction
change_form.html
+devices # lots of templates under here that work fine
404.html
500.html
Run Code Online (Sandbox Code Playgroud)
也:
TEMPLATE_DIRS = ('/WebDJ/templates',)
Run Code Online (Sandbox Code Playgroud)
在settings.py中设置.设备应用程序中的模板很好.什么没有加载是管理目录中的覆盖 - 所以Customer和Transaction的更改表单添加了一些额外的东西(覆盖"after_field_sets"块).
同样,它适用于我的开发环境(使用PyCharm),但不适用于我的生产环境.有任何想法吗?我真的很难过这个.
我有一个定义datetimefield的模型:
dateAdded = models.DateTimeField("Date Added", auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)
在我的ModelAdmin子类中,我试图在以下字段集中显示该字段:
fieldsets = (
(None, {
'fields': (
("modelId", "altModelIds", "modelName", "dateAdded"),
("manufacturer", "protocol", "category"),
("versionAdded", "proOnly", "published", "discontinued"),
"notes"
)
}),
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
FieldError: Unknown field(s) (dateAdded) specified for Device
Run Code Online (Sandbox Code Playgroud)
有趣的是,当我将它添加到list_display时:
list_display = ("modelName", "published", "modelId", "altModelIds", "manufacturer", "protocol", "category", "dateAdded")
Run Code Online (Sandbox Code Playgroud)
它工作正常.我确定我只是在做一些愚蠢的事情(我已经离开Django大约8个月了)但我无法弄明白.任何帮助,将不胜感激.