Django多表继承:查找和更改父模型

时间:2015-12-15 11:23:13

标签: python django inheritance

假设我在django中有以下模型结构:

Option Explicit

Sub btn()

Dim lItem   As Long
Dim c       As Long

Range("G:G").Clear

For lItem = 0 To Worksheets("Bordereau Prep").ListBox2.ListCount - 1
    If Worksheets("Bordereau Prep").ListBox2.Selected(lItem) = True Then
        c = c + 1
        Worksheets("BDD").Cells(15 + c, 7) = Worksheets("Bordereau Prep").ListBox2.List(lItem)
        'Worksheets("Bordereau Prep").Range("G15:G" & 14 + c) = Worksheets("Bordereau Prep").ListBox2.List(lItem)
        Worksheets("Bordereau Prep").ListBox2.Selected(lItem) = False
    End If
Next lItem

End Sub

我不确定如何访问父模型的对象,以及如何使此复制方法有效?

我搜索了很多,找不到任何答案。我应该只使用一对一的关系吗?

1 个答案:

答案 0 :(得分:1)

如果您有正常的父子模型,您将获得子项中的属性以访问父项。您可以使用新的父对象更新此属性。

此外,您创建父对象的方式可能不起作用,您需要在该对象上调用方法。

所以我会将孩子的copy()方法更新为:

class B(A):

    def copy(self):
        # this method is what I am confused about
        new_parent = self.a.copy()  # change 'a' with appropriate attribute name
        obj = self
        obj.pk = None
        # set obj's parent model to 'new_parent'
        obj.a = new_parent
        obj.save()
        return obj