@askurashev

Как реализовать такую структуру данных?

Добрый день.
Планирую структуру данных в своем проекты и возник следующий вопрос.
Есть модели:
1. Автор
2. Публикация
Они связаны через ManyToMany.
При указании автора у публикации я хочу для автора публикации добавить affiliation, т.е. где он работает и от какой организации публикует публикацию.
Т.е. мне не просто нужно указать Автора, а пару Автор и affiliation.

Как это можно реализовать?
  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
solotony
@solotony
покоряю пик Балмера
class Author(models.Model):
    name = models.CharField(max_length=100)
    # Другие поля автора

class Publication(models.Model):
    title = models.CharField(max_length=100)
    # Другие поля публикации
    authors = models.ManyToManyField(Author, through='Affiliation')

class Affiliation(models.Model):
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
    publication = models.ForeignKey(Publication, on_delete=models.CASCADE)
    affiliation = models.CharField(max_length=100)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AshBlade
@AshBlade
Просто хочу быть счастливым
Отдельная таблица для Many-To-Many и для каждой записи в ней добавляешь affiliation.

Например,

|author |post |affiliation|
|Some User|Hello, world|company |
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы