Найти - Пользователи
Полная версия: Несколько связей в модели.
Начало » Django » Несколько связей в модели.
1
Atterratio
Есть две модели, модель книг, и модель глав книги, т.е. у одной книги может существовать несколько глав и один автор условно они выглядят так:
class Book(models.Model):
book_author = models.ForeignKey(User, verbose_name='Автор')
book_title = models.CharField(max_length=255, verbose_name='Название книги')

class Chapter(models.Model):
book_title = models.ForeignKey(Book, verbose_name='Название книги')
Нужно сделать выборку глав, где была указанна не только книга родитель, но и какому юзеру она принадлежит, на основании названия книги.
Скорей всего нужно добавить “book_author” в таблицу глав, но загвоздка в том, что автор должен автоматом выбираться на основе книги, а такой вариант не работает:

class Book(models.Model):
book_author = models.ForeignKey(User, verbose_name='Автор')
book_title = models.CharField(max_length=255, verbose_name='Название книги')

class Chapter(models.Model):
book_title = models.ForeignKey(Book, verbose_name='Название книги')
book_author = models.ForeignKey(Book, db_column="book_author", verbose_name='Автор')
Подскажите как это организовать.

P.S.: надеюсь я понятно описал суть.
FishHook
class Book(models.Model):
book_author = models.ForeignKey(User, verbose_name='Автор')
book_title = models.CharField(max_length=255, verbose_name='Название книги')

class Chapter(models.Model):
book = models.ForeignKey(Book, verbose_name='Название книги')


chapters=Chapters.objects.filter(book__title=u'Незнайка на Луне', book__author__first_name=u'Носов', book__author__last_name=u'Николай')
Atterratio
Вы хотите сказать, что поле и так есть, а я как дурак этого не знал?
Rodegast
> у одной книги может существовать несколько глав и один автор

А вы не думали о том что у одной книги могут быть несколько авторов?
Atterratio
Rodegast
> у одной книги может существовать несколько глав и один автор

А вы не думали о том что у одной книги могут быть несколько авторов?
У моих не могут)))

Суть в том, что мне надо составить запрос так, что бы вывести поля и из связанной записи из другой таблицы.
Atterratio
Пока решил сделать обычные поля, которые будут саполнятся при дополнении, а не зависеть напрямую, как хотелось бы мне.
Atterratio
Всё я нашёл решение… надо сделать что то вроде:
class Book(models.Model):
book_author = models.ForeignKey(User, verbose_name='Автор')
book_title = models.CharField(max_length=255, verbose_name='Название книги')

class Chapter(models.Model):
book_title = models.ForeignKey(Book, verbose_name='Название книги')

book = Book.objects.get()
chapter = book.chapter_set.all()

Т.е. через обратную связь, танцую ат гланой модели.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB