我正在写旅行计划,我有用户。出于这个问题的目的,我们假设我的模型就像拥有“Trip”模型并具有“UserProfile”模型一样简单。
网站的功能允许搜索路由(通过外部API),然后将这些功能动态组装成“行程”,然后我们显示。新的搜索会删除所有旧的“旅行”并找出新的旅行。
我的问题是:我想将其中一些旅行保存到用户个人资料中。如果用户选择旅行,我希望它与该配置文件永久关联。目前我在UserProfile中有TriT的ManyToMany字段,但是当“清理/刷新”行程时,所有行程都被删除,并且该关联是无用的。我需要一个用户能够在一个月后回去看看那次旅行。
我正在寻找一种简单的方法来复制该旅行数据,或者在我将其添加到配置文件后将其设置为静态。 ..我不知道从哪里开始。目前,它的配置方式是有一个trips_profile数据表,它具有“trip”表的外键。 。 。如果我们不是一直删除/刷新旅行表,那就没问题了。
帮助表示赞赏。
答案 0 :(得分:2)
如果没有你的模型,很难说,但是给出以下布局:
class UserProfile(models.Model):
trips = models.ManyToManyField(Trip)
您可以通过以下方式清除无用的Trip
:
Trip.objects.filter(userprofile__isnull=True).delete()
只删除未分配给Trip
的{{1}}。
但是,考虑到以下布局:
UserProfile
你可以用以下方法杀死无用的旅程:
class Trip(models.Model):
users = models.ManyToManyField(User)
第二种方法的另一个好处是不需要对Trip.objects.filter(users__isnull=True).delete()
甚至UserProfile
进行任何更改,因为您可以通过以下方式获得UserProfile
次旅行:
User