Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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模型与遗留数据库模式的连接结果_Python_Django_Django Models_Legacy_Inspectdb - Fatal编程技术网

Python 使用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

我正在使用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\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,可能需要基于客户属性进行搜索,这将极大地简化控制器逻辑,以便能够通过这两个表上的字段过滤单个模型。