Python 使用Django模型与遗留数据库模式的连接结果
我正在使用Django 1.6,使用Django的内置管理功能为遗留数据库提供管理功能 我使用了Python 使用Django模型与遗留数据库模式的连接结果,python,django,django-models,legacy,inspectdb,Python,Django,Django Models,Legacy,Inspectdb,我正在使用Django 1.6,使用Django的内置管理功能为遗留数据库提供管理功能 我使用了inspectdb来生成模型,并对它们进行了适当的清理,但有一个部分让我感到困扰。模式的设计方式很笨拙,因此我有一个表customers: class Customers(models.Model): id = models.IntegerField(primary_key=True) billing_id = models.IntegerField() option1 = m
inspectdb
来生成模型,并对它们进行了适当的清理,但有一个部分让我感到困扰。模式的设计方式很笨拙,因此我有一个表customers
:
class Customers(models.Model):
id = models.IntegerField(primary_key=True)
billing_id = models.IntegerField()
option1 = models.BooleanField()
created = models.DateTimeField()
以及customer\u数据
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\u数据
记录总是与customers
记录一一对应,并且有太多的遗留代码无法返回并更改此记录。这是不是可以让一个Django模型加入记录,这样我就可以拥有一个客户
对象,该对象具有.first\u name
等属性?你说你在使用Django的内置管理功能。如果是这样,那么您可以为客户
创建一个,然后将客户数据
添加为一个。这将使您“能够在与父模型相同的页面上编辑模型。”
在您的情况下,它看起来像:
from django.contrib import admin
class CustomerDataInline(admin.StackedInline):
model = CustomerData
class CustomersAdmin(admin.ModelAdmin):
inlines = [CustomerDataInline,]
admin.site.register(Customers, CustomersAdmin)
这将允许您以每个
客户的形式编辑相关字段名字
、姓氏
和电话
,谢谢您的回答。有没有办法在同一个模型中表示这两个表?在某些情况下,我们不会使用Django的Admin,可能需要基于客户属性进行搜索,这将极大地简化控制器逻辑,以便能够通过这两个表上的字段过滤单个模型。