我对Django还很陌生。
基本上,我正在开发一个复杂的清单应用程序。此检查表包含各种检查点。检查表可以分配给客户端,但它与客户端没有直接关系,它的分配是基于检查点的某个属性过滤器。
class Checkpoint(models.Model):
title = models.CharField(max_length=100)
order = models.IntegerField(default=1)
category = models.ForeignKey(Category, blank=True)
description = models.TextField(max_length=500, blank=True, null=True)
message = models.ForeignKey(Message)
value_chain = models.ForeignKey(Valuechain)
manadatory = models.BooleanField(default=False)
done = models.BooleanField(default=False)
pending = models.BooleanField(default=False)
class Client(models.Model):
title = models.CharField('client name', max_length=100)
duns = models.IntegerField('duns number', max_length=9, unique=True)
start_date = models.DateField(auto_now_add=True)
end_date = models.DateField(blank=True, null=True)
message = models.ForeignKey(Message)
value_chain = models.ForeignKey(Valuechain)
slug = models.SlugField(unique=True)假设检查列表包含10个检查点。每个检查点都有两个属性,消息和价值链,这也是客户端模型的外键。
假设10个检查点中有4个具有消息值"MA“和价值链值"VCA”,并且客户端选择了相同的消息值和价值链值,则该特定客户端的检查点列表中将只包含这4个检查点。简而言之,它是基于这些属性的值进行过滤的列表。
这意味着为这两个属性选择相同值的任何其他客户端也将具有相同的检查表。
我们的目标是将checkpoint标记为已完成,但这应该只针对一个客户端,我们在该客户端的检查表中标记该客户端,而不是针对任何其他客户端。
但是,当我根据属性过滤器为客户端呈现检查点列表并更新任何检查点时,它会全局更新该检查点。我可不想这样。
所以基本上这就是我被困在这里并寻求一些指导的地方。谢谢:)
发布于 2011-09-28 19:08:34
我不确定我是否完全理解了你的问题,但在我看来,你需要一个多对多的字段来处理客户端中的已完成检查点(或者在每个客户端唯一的相关字段中)。这将允许您通过将每个检查点添加到客户端的“完成”多对多字段,将每个检查点关联为“完成”。
如果您需要每个检查点具有每个客户端的唯一属性,则需要为每个已完成的检查点实例化新的检查点实例,并使用检查点中指向客户端的外键字段将其绑定到客户端实例。
https://stackoverflow.com/questions/4906197
复制相似问题