Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django admin中可编辑的相关模型字段?_Python_Django_Django Models_Django Forms_Django Admin - Fatal编程技术网

Python Django admin中可编辑的相关模型字段?

Python Django admin中可编辑的相关模型字段?,python,django,django-models,django-forms,django-admin,Python,Django,Django Models,Django Forms,Django Admin,在阅读了Django admin站点的文档后,我仍然不确定如何通过保持以下规则在表单中直接添加相关模型的字段: 不允许直接修改模型源。只有猴子补丁或子类是可能的 需要在表单中的字段集中的现有字段之间插入,在单独的内联管理模型中不需要 字段需要可编辑,相关模型记录在表单保存时更新 简化示例如下: from django.db import models from django import forms class Order(models.Model): contact = mode

在阅读了Django admin站点的文档后,我仍然不确定如何通过保持以下规则在表单中直接添加相关模型的字段:

  • 不允许直接修改模型源。只有猴子补丁或子类是可能的
  • 需要在表单中的字段集中的现有字段之间插入,在单独的内联管理模型中不需要
  • 字段需要可编辑,相关模型记录在表单保存时更新
简化示例如下:

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
来自django.db导入模型的

来自django导入表单
类顺序(models.Model):
contact=models.ForeignKey(contact,verbose_name=u('contact'))
bill_收件人=models.CharField(u(“收件人”),blank=True)
班级联系方式:
email=models.EmailField(u(“email”),blank=True,最大长度=75)
类OrderAdminForm(forms.ModelForm):
字段集=(
(“账单地址”),{'classes':('collapse',),'fields':(
“机构名称”、“账单收件人”、“账单街1号”、“账单市”,
'电子邮件',)})

#^^^^您只需在“字段”列表中包含Contact.email即可:

'fields': ('organization_name', 'bill_addressee', 'Contact.email',)

已尝试,但出现以下错误:
配置不正确:'OrderAdminForm.fieldsets[3][1]['fields']'引用表单中缺少的字段“Contact.email”。
。是否确实可以这样引用外部模型字段?不起作用:
为Baz指定的未知字段(foo.bar)。