我使用Django 1.6使用Django的内置管理功能为旧数据库提供管理功能。
我已经使用inspectdb
来生成模型并对其进行了适当的清理,但是有一部分是在困扰我。架构是以一种笨拙的方式设计的,因此我有一个表customers
:
class Customers(models.Model):
id = models.IntegerField(primary_key=True)
billing_id = models.IntegerField()
option1 = models.BooleanField()
created = models.DateTimeField()
以及customer_data
class CustomerData(models.Model):
cust_id = models.OneToOneField('Customers', primary_key=True)
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
phone = models.CharField(max_length=100)
customer_data
记录始终与customers
记录一对一排列,并且有太多遗留代码可以返回并更改此记录。这是某种方式,我可以有一个连接记录的Django模型,以便我可以拥有Customer
属性的.first_name
对象吗?
答案 0 :(得分:1)
您说您正在使用Django的内置管理功能。如果是,那么您可以为Customers
创建ModelAdmin
,然后将CustomerData
添加为InlineModelAdmin
。这将使您能够在与父模型相同的页面上编辑模型。"
在你的情况下,它看起来像:
from django.contrib import admin
class CustomerDataInline(admin.StackedInline):
model = CustomerData
class CustomersAdmin(admin.ModelAdmin):
inlines = [CustomerDataInline,]
admin.site.register(Customers, CustomersAdmin)
这样您就可以以first_name
的形式编辑相关字段last_name
,phone
和Customers
。