5

一度に 2 つのモデルを追加/編集する方法を見つけようとしています。すなわち:

class Desktop(models.Model):
    #some field...

    specs = models.ForeignKey(Specs)

class Specs(models.Model):
    cpu = models.CharField(max_length=200)
    #and some other fields

新しいデスクトップを追加するときに、スペックも同時に追加できるようにしたいと考えています。通常の Django Admin では+シンボルを取得し、ForeignKey の値を追加できます。ただし、デスクトップの編集中に外部キーを編集したい場合は、それを行うことはできません。

アップデート!以下を追加しました。

class ServerInLine(admin.StackedInLine): 
    model = Server 
    extra = 1  
class SpecsManager(admin.ModelAdmin): 
    inlines = [ServerInLine]

これにより、スペックを追加するときにサーバーを追加できます。しかし、実際には、新しいサーバーを追加するときにスペックを追加したいと考えています。新しいサーバーまたはデスクトップを追加するときは、スペックを追加したいと考えています。サーバーとデスクトップの仕様フィールドは、入力された仕様にリンクする必要があります。

4

1 に答える 1

5

管理者でこれを試してください:

 class DesktopInline(admin.StackedInline):
    model = Desktop
    extra = 1


class SpecsAdmin(admin.ModelAdmin):
    inlines = [DesktopInline,]
admin.site.register(Specs, SpecsAdmin)

ドキュメントを見てください

于 2013-10-22T12:04:50.000 に答える