带有内联的 Django admin,1 个带有 2 个外键的模型到 2 个不同的模型
Django admin with inlines, 1 model with 2 foreigns keys to 2 different models
我总共有3个模型。我的主模型有 2 个外键到 2 个不同的模型。所以关系被设置为多对一。当我尝试自定义管理员时,我无法让它简单地允许我编辑主要角色模型并显示 2 个内联(宇宙和系列)。
最简单的方法是什么?由于 2 个外国领域正在抛弃一切,因此存在一些歧义。我已经搜索了文档,但我一定遗漏了一些东西;我在管理员中得到了一个更复杂的多对多工作,所以这有点奇怪。
这是我的模型:
class CharacterSeries(models.Model):
name = models.CharField(max_length=200)
def __unicode__(self):
return self.name
class CharacterUniverse(models.Model):
name = models.CharField(max_length=200)
def __unicode__(self):
return self.name
class Character(models.Model):
name = models.CharField(max_length=200)
rating = models.DecimalField(max_digits=3, decimal_places=1)
universe = models.ForeignKey(CharacterUniverse)
series = models.ForeignKey(CharacterSeries)
def __unicode__(self):
return self.name
这是我的管理员:
from django.contrib import admin
from .models import Character, CharacterUniverse, CharacterSeries
# Register your models here.
class SeriesInline(admin.TabularInline):
model = Character
class UniverseInline(admin.TabularInline):
model = Character
class Characterdmin(admin.ModelAdmin):
inlines = [
UniverseInline,
SeriesInline,
]
admin.site.register(Character, CharacterAdmin)
更新
我之前发布的代码错误!我没有仔细阅读您的模型。抱歉。
如果您想在 create/edit 和 Character
的同时创建 CharacterSeries
和 CharacterUniverse
,您可以这样做:
from django.contrib import admin
from .models import Character, CharacterUniverse, CharacterSeries
# No need to define `ModelAdmin` classes
admin.site.register(Character)
admin.site.register(CharacterUniverse)
admin.site.register(CharacterSeries)
上面的代码会在 universe
和 series
字段后给你一个 +
(加号)。这将帮助您即时创建 CharacterUniverse
和 CharacterSeries
对象 。
我总共有3个模型。我的主模型有 2 个外键到 2 个不同的模型。所以关系被设置为多对一。当我尝试自定义管理员时,我无法让它简单地允许我编辑主要角色模型并显示 2 个内联(宇宙和系列)。
最简单的方法是什么?由于 2 个外国领域正在抛弃一切,因此存在一些歧义。我已经搜索了文档,但我一定遗漏了一些东西;我在管理员中得到了一个更复杂的多对多工作,所以这有点奇怪。
这是我的模型:
class CharacterSeries(models.Model):
name = models.CharField(max_length=200)
def __unicode__(self):
return self.name
class CharacterUniverse(models.Model):
name = models.CharField(max_length=200)
def __unicode__(self):
return self.name
class Character(models.Model):
name = models.CharField(max_length=200)
rating = models.DecimalField(max_digits=3, decimal_places=1)
universe = models.ForeignKey(CharacterUniverse)
series = models.ForeignKey(CharacterSeries)
def __unicode__(self):
return self.name
这是我的管理员:
from django.contrib import admin
from .models import Character, CharacterUniverse, CharacterSeries
# Register your models here.
class SeriesInline(admin.TabularInline):
model = Character
class UniverseInline(admin.TabularInline):
model = Character
class Characterdmin(admin.ModelAdmin):
inlines = [
UniverseInline,
SeriesInline,
]
admin.site.register(Character, CharacterAdmin)
更新
我之前发布的代码错误!我没有仔细阅读您的模型。抱歉。
如果您想在 create/edit 和 Character
的同时创建 CharacterSeries
和 CharacterUniverse
,您可以这样做:
from django.contrib import admin
from .models import Character, CharacterUniverse, CharacterSeries
# No need to define `ModelAdmin` classes
admin.site.register(Character)
admin.site.register(CharacterUniverse)
admin.site.register(CharacterSeries)
上面的代码会在 universe
和 series
字段后给你一个 +
(加号)。这将帮助您即时创建 CharacterUniverse
和 CharacterSeries
对象 。