如何在Django管理员中为具有通用引用模型的模型创建内联?

时间:2018-04-20 15:48:54

标签: django

所以我有这样的模特:

function updateOb(e:Event):void {
     // make obstacles move
    for (var i:Number = 0; i < obstacles.length; i++) {
        var ob:Npc = obstacles[i];
        if(!ob) continue;
        move(ob);
        if (player.hitTestObject(ob)) {
        /*if (obstacles[i].hitTestPoint(player.x + player.width/2, player.y + 
player.height/2, true)
        || obstacles[i].hitTestPoint(player.x + player.width/2, player.y - 
player.height/2, true)
        || obstacles[i].hitTestPoint(player.x - player.width/2, player.y + 
player.height/2, true)
        || obstacles[i].hitTestPoint(player.x - player.width/2, player.y - 
player.height/2, true))*/
            bumpOb(obstacles[i]);
        }
    }
    scoretext.text = String(score);
    if (score == 0) {
        restart();
        gotoAndStop("gameOverLost");
    }
}

我希望def Profile(models.Model): user = OneToOneField(User, primary_key=True) def OtherProfile(models.Model): user = OneToOneField(User, primary_key=True) def Item(models.Model): user = ForeignKey(User) 中有ItemInline(同样在ProfileAdmin中)。我尝试这样做:

OtherProfileAdmin

但是,这显示了这个错误:

class ItemInline(admin.TabularInLine):
    model = Item

@admin.register(Profile)
class ProfileAdmin(admin.ModelAdmin):
    inlines = [ItemInline]

如何将<class 'app.admin.ItemInline'>: (admin.E202) 'api.Item' has no ForeignKey to 'api.Profile'. 放入ItemInline

我无法将ProfileAdmin加入ForeignKey(Profile),因为我无法从Item访问Item

1 个答案:

答案 0 :(得分:1)

为了能够添加内联,你必须为它创建一个FK(外键)。

models.py

def Profile(models.Model):
    user = ForeignKey(User)

def Item(models.Model):
    user = ForeignKey(Profile)

admin.py

class ItemInline(admin.TabularInLine):
    model = Item

@admin.register(Profile)
class ProfileAdmin(admin.ModelAdmin):
    inlines = [ItemInline]