簡體   English   中英

如何設置Django TabularInline,以便我可以編輯中間表對象

[英]How to set up Django TabularInline so I can edit intermediate table object

我正在使用TabularInline編輯器來允許編輯模型與另一個模型的關系。 通過地圖表可以進行多對多。 有沒有一種方法可以讓django在tabularInline的行中放入指向地圖表本身的圖標鏈接?

例如,如果Machine和Part由Machine2Part映射在一起,並且我在Machine中使用tabularInline來提供對其Part的編輯,我將獲得下拉菜單,該菜單允許我選擇很棒的Parts,但是我還想要一個鏈接我進入了位於該關系后面的Machine2Part對象/行的管理表單,因為我的Machine2Part管理表單具有我希望能夠從此位置訪問的字段編輯。

class Part (models.Model):
    name = models.CharField(max_length=45)

    class Meta:
        db_table = "part"

    def __str__ (self):
        return self.name

class Machine (models.Model):
    name = models.CharField(max_length=45)
    parts = models.ManyToManyField(Part, through='Machine2Part')
    class Meta:
        db_table = "machine"

    def __str__ (self):
        return self.name


class Machine2Part (models.Model):
    machine = models.ForeignKey(Machine,db_column='machineId')
    part = models.ForeignKey(Part,db_column='partId')
    class Meta:
        db_table = "machine2part"

class Machine2PartInline (admin.TabularInline):
    # fields = ['name']
    model = Machine2Part

class MachineAdmin (admin.ModelAdmin):
    inlines = [Machine2PartInline]

admin.site.register(Machine, MachineAdmin)
admin.site.register(Part)
admin.site.register(Machine2Part)

show_change_link = True將在TabularInline中的每一行旁邊添加一個“更改”鏈接

class Machine2PartInline (admin.TabularInline):
    # fields = ['name']
    model = Machine2Part
    show_change_link = True

如果模型Machine2Part包含其他字段(FK除外),則可以使用此字段顯示內聯字段,而無需其他鏈接。

class Machine2PartInline (admin.TabularInline):
    model = Machine.parts.through

請參閱Django文檔參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM