django管理员。使用相同形式创建包含子项的父项

时间:2015-08-03 15:04:36

标签: python django inheritance django-models django-admin

我的model.py

中有两个类
class User(models.Model):
  name = models.CharField()
  phone = models.CharField()
  # Other common fields

class Customer(User):
  payment = models.CharField()
  user__id = models.OneToOneField('User', db_column='id', primary_key=True)

class Company(User):
  address = models.CharField()
  user_id = models.OneToOneField('User', db_column='id', primary_key=True)

当我使用客户/公司的管理员时,它包含所有用户字段,这对我来说是完美的。但是这种形式的客户/公司还包括一个带有用户外键的下拉列表,我不想先创建用户,然后再创建客户/公司对象。我希望当我填写客户/公司表单(使用用户字段)时,我也应该创建用户对象。

有没有办法解决这个问题而不在Customer / Company实例之前创建User实例?

由于

1 个答案:

答案 0 :(得分:3)

您可以通过在admin.py中的模型注册中添加内联来实现此目的。

class AInline(admin.TabularInline):
    model = A

class BAdmin(admin.ModelAdmin):
    inlines = [AInline]

admin.register(A)
admin.register(B, BAdmin)

Django inline model admin documentation