我需要自定義添加到來自其他模型的模型頁面相關輸入的管理面板。但我無法弄清楚如何保存它們。Django Admin - 保存自定義表格的數據
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 %}
如何更改的值保存在卡模式?
我試着做如下描述:
但self.cleaned_data不包括輸入我的數據。
謝謝。
UPD:嗯,我趕上了數據,但我認爲這是非常混亂的方式。 我很難想象我會如何計算輸入的id。
def save_model(self, request, obj, form, change):
request.POST['card-288']
這就是您使用django表單的原因。如果你生成了一個formset,你可以調用formset(request.POST).save()並完成它。 – 2012-02-11 07:45:01