Django在管理界面中订购了ManyToManyField

Django在管理界面中订购了ManyToManyField,django,django-admin,Django,Django Admin,我有一个遗留数据库,其中包含用于文档和作者的表。第三个表定义文档和作者之间的有序多对多关系,使用文档和作者的外键以及整数指定给定文档的作者顺序 使用Django 1.1.1(或SVN),有没有办法在管理页面中编辑文档作者及其顺序?这很快而且有点粗糙,但应该可以让您接近(r) 这可能也会帮助您在Django中为遗留数据库构建模型 我已经使用它为mediawiki数据库构建了一个模型。大多数事情都做对了,但是你需要稍微调整一下模型。我以前尝试过,但是在文档管理页面中只有一行/条目的作者显示出来进行

我有一个遗留数据库,其中包含用于文档和作者的表。第三个表定义文档和作者之间的有序多对多关系,使用文档和作者的外键以及整数指定给定文档的作者顺序


使用Django 1.1.1(或SVN),有没有办法在管理页面中编辑文档作者及其顺序?

这很快而且有点粗糙,但应该可以让您接近(r)

这可能也会帮助您在Django中为遗留数据库构建模型


我已经使用它为mediawiki数据库构建了一个模型。大多数事情都做对了,但是你需要稍微调整一下模型。

我以前尝试过,但是在文档管理页面中只有一行/条目的作者显示出来进行编辑,即使我在FooInline类中指定了extra=3。我刚刚测试过这个(w/1.1.1),并且在添加新文档时可以选择最初附加3个作者,编辑文档时还有3个。不确定它会在哪里对您不利,但它似乎对我很好。出于好奇,您是否尝试过inspectdb来查看您得到了什么模型表示()。好的,我已经找到了差异的原因。在我的旧数据库中,Foo表不包含“id”主键列。相反,它是在所有三列上键入的,第一个键是doc id,然后是author id,然后是order。当我在一个字段上输入primary\u key=True时,只有一个条目显示在管理页面中。输出的model inspectdb类似于我手工编码的条目:class DocumentAuthor(models.model):doc\u id=models.IntegerField(primary\u key=True)author\u id=models.IntegerField(primary\u key=True)order\u presentation=models.IntegerField(primary\u key=True)类Meta:db\u table=u'document\u author'
from django.db import models
from django.contrib import admin

class Document(models.Model):
    name = models.CharField(max_length = 128)

    def __unicode__(self):
        return self.name

class Author(models.Model):
    name = models.CharField(max_length = 128)
    document = models.ManyToManyField(Document, through = 'Foo')

    def __unicode__(self):
        return self.name

class Foo(models.Model):
    document = models.ForeignKey(Document)
    author = models.ForeignKey(Author)
    author_order = models.IntegerField()

class FooInline(admin.TabularInline):
    model = Foo

class DocumentAdmin(admin.ModelAdmin):
    inlines = [ FooInline ]

admin.site.register(Author)
admin.site.register(Document, DocumentAdmin)