【发布时间】:2010-12-17 02:42:13
【问题描述】:
我有一个旧数据库,其中包含文档和作者表。第三个表定义了文档和作者之间的有序多对多关系,使用文档和作者的外键和一个整数来指定给定文档的作者顺序。
使用 Django 1.1.1(或 SVN),有没有办法在管理页面中编辑文档作者及其顺序?
【问题讨论】:
标签: django django-admin
我有一个旧数据库,其中包含文档和作者表。第三个表定义了文档和作者之间的有序多对多关系,使用文档和作者的外键和一个整数来指定给定文档的作者顺序。
使用 Django 1.1.1(或 SVN),有没有办法在管理页面中编辑文档作者及其顺序?
【问题讨论】:
标签: django django-admin
这很快而且有点粗糙,但它应该能让你接近(r)。
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)
http://docs.djangoproject.com/en/dev/topics/db/models/#intermediary-manytomany http://docs.djangoproject.com/en/dev/ref/contrib/admin/#inlinemodeladmin-objects
【讨论】:
这也可能对您有所帮助 - there is some utility 在 Django 中为遗留数据库构建模型。
我已经使用它为 mediawiki 数据库构建了一个模型。它使大部分事情都正确,但您需要稍微调整模型。
【讨论】: