Я разрабатываю приложение Mturk в Django, где люди оценивают Tweets для разных результатов (пол, личность, возраст и т. Д.). В моих моделях у меня есть три класса: Задача (задача Mturk), Сообщение (сообщение Twitter) и Итог (отношение, которое я хочу, чтобы аннотация аннотировала). Для каждой задачи я хочу отображать определенное количество твитов. Так, например, если я хочу что-то узнать о пользователе Twitter, я могу показать 20 твитов, но если я хочу что-то узнать о одном твитте, я покажу только 1 твит.Django: установить количество отношений ForeignKey по целочисленному значению в другой модели
Для каждого результата будет множество экземпляров задачи, и каждое сообщение должно быть использовано в нескольких задачах (возможно, каждый указывает на разные результаты).
Итак, мой вопрос: учитывая, что num_of_tweets
в модели «Исходы», как я могу задать задачи для такого количества сообщений? Есть ли лучший способ сделать это?
class Outcomes(models.Model):
name = models.CharField(max_length=100,)
short_definition = models.TextField()
detail_desc = models.TextField()
num_of_tweets = models.Integer(default=1)
class Tasks(models.Model):
outcome = models.ForeignKey(Outcomes, blank=True, null=True)
message = models.ForeignKey(Message)
mturk_user_id = models.CharField(max_length=100,)
answer = models.TextField(null=True, blank=True)
class Messages(models.Model):
message = models.TextField()
source = models.CharField(max_length=100,)
Моя первая мысль была выбрать максимальное количество сообщений, скажем, 5, а затем что-то вроде:
class Tasks(models.Model):
outcome = models.ForeignKey(Outcomes, blank=True, null=True)
message1 = models.ForeignKey(Message)
message2 = models.ForeignKey(Message, blank=True, null=True)
message3 = models.ForeignKey(Message, blank=True, null=True)
message4 = models.ForeignKey(Message, blank=True, null=True)
message5 = models.ForeignKey(Message, blank=True, null=True)
mturk_user_id = models.CharField(max_length=100,)
answer = models.TextField(null=True, blank=True)
Это утомительно, тем более, что я знаю, что некоторые результаты должны показать до 20 чириканье.
Вы когда-нибудь рассматривали возможность использования базы данных nosql для этой задачи/проекта? Вы получите гибкую таблицу (документ в nosql). – sobolevn
Нет, посмотрим на это. Я новичок в Django, базах данных и Mturk, поэтому я просто строю из какого-то существующего кода, который мне теперь нужно обобщать (вот почему я добавляю возможность показывать n количество чириканье). – Sal