2012-01-30 85 views
2

我正在撰写旅行计划,并且我有用户。为了这个问题的目的,我们假设我的模型与具有“旅行”模型和具有“用户配置文件”模型一样简单。Django模型表临时数据与永久数据

该站点的功能允许搜索路由(通过外部API),然后将这些路由动态地组合到“旅行”中,然后显示出来。新的搜索会删除所有旧的“旅程”并找出新的。

我的问题是这样的:我想保存一些这些旅行到用户配置文件。如果用户选择旅行,我希望它与该个人资料永久关联。目前,我的UserProfile中有一个ManyToMany字段,但当旅行“清理/刷新”时,所有行程都将被删除,并且该关联无用。我需要一个用户能够在一个月后回去看看那次旅行。

我正在寻找一种简单的方法来复制该行程数据,或者将其添加到配置文件后将其设为静态。 ..我不知道从哪里开始。目前,它配置的方式是有一个trips_profile数据表,它具有“旅行”表的外键。 。 。如果我们不是一直删除/清空旅程表,那将会很好。

帮助赞赏。

+1

为什么在Trip模型中没有字段tripType,如果它设置为“永久”,这意味着至少有一个用户将其作为永久旅行,则不要删除它。 – Sid 2012-01-30 21:43:30

回答

2

很难说清楚没有你的车型,但考虑到以下布局:通过做

class UserProfile(models.Model): 
    trips = models.ManyToManyField(Trip) 

可以清除掉无用Trip S:

Trip.objects.filter(userprofile__isnull=True).delete() 

这只会删除Trip不是分配给UserProfile

不过,考虑到以下布局:

class Trip(models.Model): 
    users = models.ManyToManyField(User) 

你可以杀死无用之旅:

Trip.objects.filter(users__isnull=True).delete() 

第二种方法具有无需到UserProfile甚至任何改变的附带好处UserProfile在所有,因为你可以然后只是得到User的旅行与:

some_user.trip_set.all()