0

请看一看:

class Categorie(models.Model):
    id = models.AutoField('id', primary_key=True)
    title = models.CharField('title', max_length=800)
    articles = models.ManyToManyField(Article)

class Article(models.Model):
    id = models.AutoField('id', primary_key=True)
        title = models.CharField('title', max_length=800)
    slug = models.SlugField()
    indexPosition = models.IntegerField('indexPosition', unique=True)

class CookRecette(Article):
    ingredient = models.CharField('ingredient', max_length=100)

class NewsPaper(Article):
    txt = models.CharField('ingredient', max_length=100)

所以我创建了“CookRecette”和“NewsPaper”作为“文章”。我还创建了一个链接到(manyToMany)“文章”的“类别”类。

但在管理界面中,我无法从“类别”链接到“CookRecette”或“NewsPaper”。与代码相同。有什么帮助吗?

干杯,
马丁马加基安

PS:我很抱歉,但实际上这段代码是正确的!所以一切正常,我可以从“Categorie”中看到我的“CookRecette”或“NewsPaper”

4

2 回答 2

1

我首先要说你不需要定义“id”字段,如果你不定义它,那么 Django 会自动添加它。

其次,CookRecette 和 NewsPaper 对象不以任何方式(ForeignKey、OneToOne、OneToMany、ManyToMany)链接到 Categorie 对象,因此无论如何它们都不能以这种方式访问​​。

在您以任何您希望的方式将模型链接在一起之后,您可能想看看http://docs.djangoproject.com/en/1.2/ref/contrib/admin/#django.contrib.admin.InlineModelAdmin其中将向您展示如何在 Djano 管理控制台中快速编辑相关对象。

于 2011-03-03T22:12:44.920 回答
0

NewsPaper有一部分作为Article对象。如果您将创建新NewsPaper对象,您将在文章中看到一个新对象。所以在管理界面,当管理分类时,你可以选择任何文章,其中一些是新闻报纸。

您可以将新闻报纸添加到如下类别:

category = Categorie(title='Abc')
category.save()
news_paper = NewsPaper(slug='Something new', indexPosition=1, txt='...')
news_paper.save()
category.articles.add(news_paper)

您可以从特定类别中检索新闻论文,如下所示:

specific_category = Categorie.objects.get(title='Abc')
NewsPaper.objects.filter(categorie_set=specific_category)
于 2011-03-03T22:29:32.043 回答