【发布时间】:2012-03-03 12:40:22
【问题描述】:
我需要自定义添加到模型页面的管理面板,相关输入来自另一个模型。但我不知道如何保存它们。
admin.py
class OrderAdmin(admin.ModelAdmin):
change_form_template = 'admin/testapp/order/change_form.html'
def change_view(self, request, object_id, extra_context=None):
order = Order.objects.get(id=object_id)
card_list = Card.objects.all().filter(type=order.type)
result = super(OrderAdmin, self).change_view(request, object_id, extra_context={
'card_list': card_list,
})
return result
change_form.html
{% for card in card_list %}
<input type="text" name="card-{{ card.id}}" value="{{ card.qty }}"></td>
{% endfor %}
如何保存Card模型中改变的值?
我尝试按照此处所述进行操作: https://docs.djangoproject.com/en/1.3/ref/contrib/admin/#adding-custom-validation-to-the-admin
但是 self.cleaned_data 不包括我的输入数据。
谢谢。
UPD:嗯,我捕获了数据,但我认为这很混乱。 我几乎无法想象我将如何根据输入计算 id。
def save_model(self, request, obj, form, change):
request.POST['card-288']
【问题讨论】:
-
这就是你使用 django 表单的原因。如果你生成了一个表单集,你可以调用 formset(request.POST).save() 并完成它。
标签: django django-admin