问题标签 [django-modeladmin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - Django-admin list_editable 动态启用/禁用(编辑/查看模式检查)
我想通过按钮(或类似的东西)更改页面的编辑/查看模式。编辑模式等于 EntityModelAdmin 正文中指定的 list_editable。查看模式等于空 list_editable。
如何做到这一点?似乎我应该重写一些类/函数来考虑模式触发器的状态。
对实体实例的添加/更改页面做同样的事情(所有字段都是只读的)也会很好。
django - Django 管理员创建内联模型对象
在我的 django 管理员中,我正在创建一个与另一个表具有一对多关系的管理模型。让我们称之为Recipes
和Ingredients
。每个食谱都有多种成分。
我想让它在管理页面中,用户可以创建一个食谱并在同一页面上添加某些成分。所以我使用inline models
. 问题是一旦创建了某些成分,就应该只允许编辑几个字段。所以我创建了两个独立的内联模型——一个用于编辑,一个用于添加。
另一个问题是,只有在用户具有特定权限的情况下才能创建成分。如果用户没有这些权限,它仍然会创建成分,但它们不是published
。他们后来必须得到具有正确权限的人的批准。现在,我正在重写formset
用于创建成分的内容。它看起来像这样:
然后我有一个单独的内联类进行编辑:
然后在我的食谱管理模型中,它看起来像这样:
这适用于为这些食谱添加食谱和成分,并且显示对所有内容都很好。但是,当我尝试编辑给定食谱的现有成分时,我收到错误:IngredientFormFormSet' object has no attribute 'new_objects'
我想这是因为我没有formset.save()
使用AddIngredientFormSet
. 这也开始变得相当复杂,所以我想知道是否有更好的方法来检查发布内联成分的权限并正确保存该列。
python - Django Admin 自定义视图 URL 未被识别
我在 Python 3.4.3 上使用 Django 1.8
我有一个名为 FormUpload 的模型,我在同一个应用程序“mca”的 admins.py 中添加了一个 ModelAdmin。
这应该在 /admin/mca/upload/ 可用。但是,当我转到 URL 时,我得到一个 404,说当前 URL 不匹配任何内容
这是调试的输出
RegexURLPattern 无 ^upload/$
(删除了一些会使调试显示奇怪的东西)。
请注意无。如果列出了其他 URL,则在 None 所在的位置有一个方法名称。
我在这里做错了什么?我正在遵循 django 文档中建议的方法 - https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#modeladmin-methods
python - django admin 自定义模型 admin url
所以我Bookings
在我的 django 应用程序中有一个模型。我正在使用 django admin 来显示有关预订的信息。我想直接从changelist
视图创建一个自定义 url——(不是change
视图)。
我希望网址类似于:/admin/bookings/generate_bookings
。
我已经通过覆盖get_urls
函数在我的模型管理员中注册了该 url。问题是 django 会自动解析任何遵循model_name/<text>
as a detail view url 语法的 url,并假定其中的任何内容都是text
给定模型的主键。
结果我得到了错误:
booking object with primary key u'random_text' does not exist.
有什么方法可以让我的自定义网址首先解析?
django - ModelForm 未显示在管理员中
我有一个名为profile的应用程序,其中包含 de model Profile(models.Model)。然后,我有另一个名为offer的应用程序,模型为Offer(models.Model),它几乎具有 Profile 的所有属性,所以我想在 offer 中包含一个带有 profile 属性的表单。在offer应用程序的forms.py中,我创建了:
然后在admin.py中(也在应用程序中)我有:
而且我没有收到任何错误,唯一的问题是 Profile 的 de 字段没有出现在 Offer 部分的管理中。留下什么东西吗?任何帮助将不胜感激,谢谢!
django - 如何在models.py的save方法中获取内联对象
我有类 Invoice,它(简化)具有以下属性:
然后,我有类 InvoiceLine,它表示发票可以具有的行/行:
InvoiceLine 是发票的内联,我想要实现的是,当在管理员中有人保存发票及其行(一个或多个)时,计算发票的总额。我试图通过覆盖方法保存来做到这一点:
问题是当我在 InvoiceLine 中添加元素时,第一次保存并调用函数时,内联 (InvoiceLine) 中的新元素尚未存储,所以当我这样做时InvoiceLine.objects.filter(invoice=self.id)
,它们不会被考虑在内。因此,唯一可行的方法是节省两次。我也试过:
但是结果是一样的。任何的想法?提前致谢!
python - 如何在 Django FeinCMS 项目中子类化我的 ModelAdmins?
我有许多从 扩展而来的模型feincms.models.Base
,并在管理站点中使用 FeinCMS 项目编辑器(即它们都feincms.admin.item_editor.ItemEditor
用作它们的ModelAdmin
)。
这些模型具有一些共享功能,我希望能够在共享ModelAdmin
类中定义这些功能,然后我可以为每个模型进行扩展。
问题是,这不能很好地与FeinCMS
扩展一起使用,从而导致意外结果,例如重复选项卡,其中扩展将内容ModelAdmin
多次添加到 s 中。
有没有办法在不搞乱扩展的情况下做到这一点?
django - 将链接添加到 ModelAdmin
我有一个ModelForm
:
和ModelAdmin
:
第一个问题,method_config
字段不显示。我知道,它不在 中list_display
,但如果我将它添加到 中list_display
,则会导致错误。
第二个主要问题:我怎样才能添加一些链接到其他ModelAdmin
?
python - 为什么 Django 一直询问内容类型是否过时并且需要删除
我已经尝试了所有发现:
InvalidBasesError:无法解析 [<ModelState: 'users.GroupProxy'>] 的基础
Django Wagtail CMS 迁移:无法解析 [<ModelState: 'app.CustomPage'> 的基础
Django 使用 zinnia 迁移 - InvalidBasesError: Cannot resolve bases for [<ModelState: 'zinnia.Author'>]
所以这是我的问题:我有:
- a
ComicBook
有一个多对多Planche
的 - a
Planche
有一个多对多Bande
的 - a
Bande
有一个多对多Vignette
的 - ...以及更深的三个层次(这并不重要,它始终是相同的原则)
我需要在多对多表之间添加“ importance
”字段,以便能够对关系进行自定义排序。因此我创建了
- a
ComicBookPlanche
那是带有字段的多对多表importance
- a
PlancheBande
那是带有字段的多对多表importance
在我决定重命名ComicBook
为Book
. 从现在开始我总是收到消息django.db.migrations.state.InvalidBasesError: Cannot resolve bases for...
我什至试图删除所有的表 和 迁移文件夹,没有任何改变......我试图评论我的应用程序 - >很好然后取消评论并且仍然:
我快疯了。所以这就是我所做的:
- 全新的应用
makemigrations
然后migrate
-> auth、admin、sessions、sites created 没问题- 复制/粘贴我的
models.py
不带admin.py
.
makemigrations
-> 完美:
然后migrate
->完美:
然后复制/粘贴我的admin.py
then makemigrations
-> 完美:
然后每次我尝试migrate
它都会问我这个,无论我回答“是”还是“否”:
我该怎么做才能让他停止询问,问题是什么?