我有以下型号:http://slexy.org/view/s20T8yOiKZ

from mxutils.cms_services import generate_secid
from django.db import models
from django.contrib import admin
from django import forms

class World(models.Model):
    title = models.CharField(max_length=150)
    secid = models.SlugField(max_length=1000, editable=False)
    elements = models.ManyToManyField("Element", related_name='elements', blank=True, null=True)
    metadata = models.OneToOneField("Category_metadata", blank=True, null=True)
    def save(self):
        if not self.pk:
            super(World, self).save()
            self.secid = generate_secid(self.title, self.pk, World.objects.all())
        return super(World, self).save()
    def __unicode__(self):
        return "%s" % self.title

class Element(models.Model):
    parent = models.ForeignKey(World, related_name='element_parent')
    world = models.ForeignKey(World, related_name='world', blank=True, null=True)
    item = models.ForeignKey("Item", blank=True, null=True)
    value = models.DecimalField(default=0, max_digits=5, decimal_places=3)
    def save(self):
        if self.world and self.item:
            return None
        elif not self.world and not self.item:
            return None
        else:
            return super(Element, self).save()
    def __unicode__(self):
        if self.world:
            return "%s" % self.world.title
        else:
            return "%s" % self.item.title

class ElementInline(admin.TabularInline):
    model = Element
    extra=1

class WorldAdmin(admin.ModelAdmin):
    inlines = [ElementInline,]
    list_display = ('title',)
    ordering = ['title']
    search_fields = ('title',)

当我try 单击管理页面中世界的添加按钮时,它显示以下错误:

类"cms_sample.world_mods.Element"具有多个指向类"cms_sample.world_mods.World"的ForeignKey.

我认为这与内联有关.

推荐答案

Django不知道两个外键(parent和world)中的哪一个将使用ElementInline内联.

class ElementInline(admin.TabularInline):
    model = Element
    fk_name = 'parent' #or 'world', as applicable.
    extra=1

Django相关问答推荐

测试DRF中需要授权头

在/Contact-Agent/Get()返回的多个对象返回了多个属性--它返回了2

__init__()获取了意外的关键字参数';id';

情节主题更改问题

如何创建复杂的查询?| ChartJS 和 Django

过滤查询以获取两个朋友之间的聊天消息?

如何在 Django REST Framework API 响应中使用多标签过滤器?

Django:使用相同的外键在不同的应用程序中 Select 多个列

django 创建多种类型用户的最佳方法

Django 模板中的 Handlebars.js

Django:在模板中呈现表单字段时添加 CSS 类

为 Django 模型生成非顺序 ID/PK

Django删除查询集的最后五个以外的所有内容

relation "django_site" does not exist

django- nginx: [emerg] open() "/etc/nginx/proxy_params" 在 /etc/nginx/sites-enabled/myproject:11 中失败(2:没有这样的文件或目录)

Django post_save 在不覆盖模型 save() 的情况下防止递归

如何使用或使用 Django 的模型过滤系统?

Django Admin - save_model 方法 - 如何检测字段是否已更改?

过滤查询参数

Django:按位置排序,忽略 NULL