Skip to main content
 首页 » 编程设计

python之django 管理员。以相同的形式创建带有子项的父项

2024年08月25日29tuyile006

我的 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) 

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

有没有办法在不在客户/公司实例之前创建用户实例的情况下解决这个问题?

谢谢

请您参考如下方法:

您可以通过在 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