Django Model Table临时数据与永久数据

时间:2012-01-30 21:37:33

标签: django static foreign-keys many-to-many

我正在写旅行计划,我有用户。出于这个问题的目的,我们假设我的模型就像拥有“Trip”模型并具有“UserProfile”模型一样简单。

网站的功能允许搜索路由(通过外部API),然后将这些功能动态组装成“行程”,然后我们显示。新的搜索会删除所有旧的“旅行”并找出新的旅行。

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

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

帮助表示赞赏。

1 个答案:

答案 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