【发布时间】:2014-07-10 03:49:24
【问题描述】:
阅读 Django 管理站点的文档后,我仍然不确定如何通过保持以下规则直接在表单中添加相关模型的字段:
- 不允许直接修改模型源。只有猴子修补或子类化是可能的。
- 需要在表单的字段集中的现有字段之间插入,不需要在单独的内联管理模型中插入
- 字段需要可编辑,相关模型记录在表单保存时更新
简化示例如下:
from django.db import models
from django import forms
class Order(models.Model):
contact = models.ForeignKey(Contact, verbose_name=_('Contact'))
bill_addressee = models.CharField(_("Addressee"), blank=True)
class Contact:
email = models.EmailField(_("Email"), blank=True, max_length=75)
class OrderAdminForm(forms.ModelForm):
fieldsets = (
(_('Billing Address'), {'classes': ('collapse',), 'fields': (
'organization_name', 'bill_addressee', 'bill_street1', 'bill_city',
'email',) })
# ^^^^^^ <-- need related model field directly
)
class Meta:
model = Order
对于只读字段,这是非常简单的任务。只需定义返回相关模型字段的方法并放入readonly_fields 属性。但是可编辑呢?
【问题讨论】:
标签: python django django-models django-forms django-admin