gpt4 book ai didi

python - django-admin - 如何修改 ModelAdmin 以一次创建多个对象?

转载 作者:太空狗 更新时间:2023-10-29 21:07:50 25 4
gpt4 key购买 nike

假设我有非常基本的模型

class Message(models.Model):
msg = models.CharField(max_length=30)

此模型已注册到管理模块:

class MessageAdmin(admin.ModelAdmin):
pass
admin.site.register(Message, MessageAdmin)

目前,当我进入管理界面时,单击“添加消息”后,我只有一个表单可以输入 msg

我想在“添加页面”上有多个表单(也许是表单集),这样我就可以一次创建多个消息。每次都必须单击“保存并添加另一个”真的很烦人。

理想情况下,我想实现类似 InlineModelAdmin 的功能,但事实证明,您只能将它用于与所编辑对象相关的模型。

您建议使用什么来解决这个问题?

最佳答案

这可能不是您要找的东西,但如果您想同时创建多个对象,您可以这样做:

#In /forms.py
MessageAdminForm(forms.ModelForm):
msg = CharField(max_length=30)
count = IntegerField()

#In /admin.py
from app.admin import MessageAdminForm
MessageAdmin(admin.ModelAdmin):
form = MessageAdminForm
fieldsets = (
(None, {
'fields' : ('msg','count')
}),)
def save_model(self, request, obj, form, change):
obj.msg = form.cleaned_data['msg']
obj.save()
for messages in range(form.cleaned_data['count']):
message = Message(msg=form.cleaned_data['msg'])
message.save()

基本上您正在做的是为您的管理模板创建一个自定义表单,它会询问用户该对象应创建多少次。然后在 save_model 方法中解释逻辑。

关于python - django-admin - 如何修改 ModelAdmin 以一次创建多个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2993548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com