Джанго наследство - PullRequest
0 голосов
/ 04 марта 2011

Пожалуйста, посмотрите:

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" как "Статья".Я также создаю класс "Категория", который ссылается на "много статей". "То же из кода.Любая помощь?

Ура,Мартин Магакян

PS: Мне очень жаль, но на самом деле этот код правильный!Так что все работает хорошо, я вижу мой "CookRecette" или "Газета" из "Категория"

Ответы [ 2 ]

1 голос
/ 04 марта 2011

Я начну с того, что вам не нужно для определения поля 'id', если вы его не определите, Django добавит его автоматически.

Во-вторых, объекты CookRecette и NewsPaper никоим образом не связаны с объектом категории (ForeignKey, OneToOne, OneToMany, ManyToMany), поэтому в любом случае к ним нельзя будет получить доступ.

После того, как вы свяжете модели друг с другом любым удобным для вас способом, вы можете взглянуть на http://docs.djangoproject.com/en/1.2/ref/contrib/admin/#django.contrib.admin.InlineModelAdmin, который покажет вам, как быстро редактировать связанные объекты в консоли администратора Djano.

0 голосов
/ 04 марта 2011

NewsPaper имеет часть как Article объект. Если вы создадите новый объект NewsPaper, вы увидите новый объект в статьях. Таким образом, в интерфейсе администратора при управлении категориями вы сможете выбрать любую статью, и некоторые из них - это 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...