Используя пример отношений Django ManyToMany. Нужна инициализация сначала? - PullRequest
2 голосов
/ 28 ноября 2011

Только что закончил учебник по Джанго. Начиная свой собственный проект. Используя пример Отношения ManyToMany здесь . Я добавил следующие элементы управления в мой admin.py:

class ArticleInline(admin.TabularInline):
    model = Article
    extra = 3

class PublicationAdmin(admin.ModelAdmin):
    inlines = [ArticleInline]

admin.site.register(Publication, PublicationAdmin)

Но когда я пытаюсь добавить публикацию на странице администратора, она говорит:

<class 'polls.models.Article'> has no ForeignKey to <class 'polls.models.Publication'>

Нужно ли инициализировать статью, прежде чем я смогу создать публикацию? Делает ли создание публикации Django поиском статьи?

Спасибо за помощь. Просто начинаю. Это довольно ошеломляюще, но очень захватывающе.

1 Ответ

1 голос
/ 28 ноября 2011

Если вы используете отношение «многие ко многим», вам нужно получить доступ к фактическому через модель.

Я предполагаю, что у вас есть что-то вроде:

class Publication(models.Model):
    [...]  # your other stuff
    articles = models.ManyToManyField(Article)

Предполагается, что конструкцияВы получаете доступ к модели through, используя атрибут, записанный аналогично:

class ArticleInline(admin.TabularInline):
    model = Publication.articles.through
    [...]  # whatever else you need

Надеюсь, это поможет!

...