显然GridFieldExportButton只能导出当前可见的数据集(分页).有没有办法让它从模型中导出所有行?
或者:有没有办法显示所有行(例如绕过分页),以便用户在显示所有行后可以执行导出?我不想一直显示所有行(可能通过设置可能ModelAdmin::set_page_length(<ridiculouslyHighNumber>);),但只是按需提供.
当调用save_related时,我需要从内联表单集中的所有表单访问两个字段,而save_related只允许我访问已更改的表单/数据.
我的问题的任何其他解决方案,所以这里是:
class Invoice(models.Model):
invoice = models.CharField(max_length=10, blank=True, null=True, unique=True)
total = models.PositiveIntegerField(blank=True, null=True)
class InvoiceItem(models.Model):
invoice = models.ForeignKey(Invoice, related_name='items')
service = models.ForeignKey(Service)
quantity = models.PositiveIntegerField(blank=False, default=1)
price = models.PositiveIntegerField(blank=False, default=0)
class InvoiceItemInline(admin.TabularInline):
model = InvoiceItem
class InvoiceAdmin(admin.ModelAdmin):
inlines = [InvoiceItemInline]
def save_related(self, request, form, formsets, change):
invoice = form.instance
invoice.total = 0
for inlines in formsets:
for inline_form in inlines:
invoice.total = invoice.total + inline_form.cleaned_data['price'] * inline_form.cleaned_data['quantity']
invoice.save()
super(InvoiceAdmin, self).save_related(request, form, formsets, change)
Run Code Online (Sandbox Code Playgroud)
我需要计算每个发票项目的发票总额,其中每个项目都有数量*价格.
我的DataObject中有date-property.
如何在ModelAdmin中按日期范围进行搜索?
例如:"搜索日期大于2007-13-01且小于2007-17-01的
所有项目" 或"搜索日期介于2007-13-01和2007-17-01之间的所有项目"
现在我只能使用GreaterTranFilter或LessThanFilter进行搜索,但不能同时搜索.
class MyObject extends DataObject {
private static $db = [
"Date" => "Date",
];
private static $summary_fields = [
"Date" => "Date",
];
private static $searchable_fields = [
"Date" => [
"field" => "DateField",
"filter" => "GreaterThanFilter",
"title" => 'Date from ...'
],
];
}
Run Code Online (Sandbox Code Playgroud)
此外,搜索字段必须使用日历(datepicker)
DateField:
default_config:
showcalendar: true
Run Code Online (Sandbox Code Playgroud)
你能举例说明如何按日期范围进行搜索吗?
我正在尝试为现有的自定义用户模型设置 Wagtail。根据要求,应该有几个用户页面可用,代表不同类型的用户(常规、经理等)我尝试为每种情况创建单独的 ModelAdmin,覆盖 get_queryset 以按用户类型过滤。但看起来它们都显示了 ModelAdmin 的第一个定义,因为它们都有模型 - 用户
然后我尝试使用代理模型,在这种情况下根本没有显示,因为 Wagtail 似乎不支持代理模型。
我现在看到的唯一选择是创建我自己的视图并添加导致它的菜单项
请建议在 Wagtail 中实现此目标的最佳/最简单方法是什么
在 Wagtail 项目中的 Django 模型中,该模型作为模型管理实例连接,我想从以下实例访问数据HelpPanel:
# file: models.py
class ExpertiseApproval(models.Model):
expertise = models.ForeignKey(
ProfilePageExpertises,
on_delete=models.SET_NULL,
blank=True,
null=True,
)
approved = models.BooleanField(
default=False,
)
def get_expertise_repr(self):
return 'Expertise: {}'.format(self.expertise)
panels = [
HelpPanel(
heading='Approving expertises',
content='{}'.format(get_expertise_repr(self)),
),
FieldPanel('approved'),
]
Run Code Online (Sandbox Code Playgroud)
但是通过上面的代码,我得到了一个“自我未定义”:
# traceback snippet
content='{}'.format(get_expertise_repr(self)),
NameError: name 'self' is not defined
Run Code Online (Sandbox Code Playgroud)
该self面板中的定义似乎不成为self从我想在这里使用的模型实例。
任何想法如何从这个HelpPanel定义中的绑定模型实例访问数据?
要在Django admin中封装自定义功能,我提供了一个自定义的ModelAdmin类,实际上看起来像这样:
class ArticleAdmin(admin.ModelAdmin):
class Media:
js = ("my_code.js",)
Run Code Online (Sandbox Code Playgroud)
我注意到my_code.js在添加和更改页面中都加载了,但我只需要在添加页面中加载它.是否可以这样做(以及如何)?
谢谢.
我有这门课:
class Product extends DataObject {
static $db = array(
'Name' => 'Varchar',
'ProductType' => 'Varchar',
'Price' => 'Currency'
);
}
Run Code Online (Sandbox Code Playgroud)
数据库表如下所示:
---------------------------------
| Name | ProductType | Price |
|-----------+-------------+-------|
| Product 1 | Type1 | 100 |
| Product 2 | Type1 | 240 |
| Product 3 | Type2 | 10 |
| Product 4 | Type1 | 100 |
---------------------------------
Run Code Online (Sandbox Code Playgroud)
我想有2个模特管理员:
class MyFirstModel extends ModelAdmin {
public static $managed_models = array(
Product
);
}
class MySecondModel …Run Code Online (Sandbox Code Playgroud) modeladmin ×7
silverstripe ×3
django-admin ×2
wagtail ×2
datefield ×1
django ×1
media ×1
python ×1
python-3.x ×1
search ×1