1

我正在使用 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记录总是与记录 1 对 1对齐customers,并且有太多遗留代码可以返回并更改它。这是某种方式我可以拥有一个连接记录的单个 Django 模型,以便我可以拥有一个Customer具有.first_name等属性的对象吗?

4

1 回答 1

1

您说您正在使用 Django 的内置管理功能。如果是这样,那么您可以创建一个ModelAdminforCustomers然后添加CustomerDataInlineModelAdmin. 这将使您“能够在与父模型相同的页面上编辑模型”。

在您的情况下,它看起来像:

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.

于 2014-06-03T19:00:25.123 回答