我可以直接查询联接表以获取关联的“ created_at”日期吗?

时间:2018-10-31 13:14:19

标签: ruby-on-rails postgresql activerecord many-to-many

我有一个Member模型和一个Tag模型。它们具有使用activerecord关联建立的多对多关系。结果,在我的模式中反映了一个members_tags简单联接表。默认情况下,该表具有一个created_at列。我希望访问此信息以查看将标签应用于成员的日期时间。这可能吗?

1 个答案:

答案 0 :(得分:0)

由于您在成员标签之间具有from faker import Faker from first_app.models import AccessRecord, Webpage, Topic import random import django import os os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'first_project.settings') django.setup() fakegen = Faker() topics = ['search', 'social', 'News', 'Games'] def add_topic(): t = Topic.objects.get_or_create(top_name=random.choice(topics))[0] t.save() return t enter code here def populate(N=5): for entry in range(N): top = add_topic() fake_url = fakegen.url() fake_date = fakegen.date() fake_name = fakegen.company() webpg = Webpage.objects.get_or_create(top_name=top, url=fake_url, name=fake_name)[0] acc_rec = AccessRecord.objects.get_or_create(name=webpg, date=fake_date)[0] if __name__ == '__main__': print('populating script') populate(20) print('poulated') 关系,因此您将拥有一个已连接的模型 ModelTag TagModel 取决于您的命名方式)。创建联接表many to many(或model_tags)时,您也可以访问tag_models列。

假设您有一个ModelTag模型。您可以使用以下方式访问其任何实例created_at列:

created_at

如果要访问所有实例的created_at列:

ModelTag.first.created_at

Dunno是否就是您想要的?