我需要一个多对多的Django关系;像这样的东西:
用户可以添加更多地点。我需要避免在Locations中重复: 如果更多的用户添加相同的位置(即纽约),我会有一个位置" NewYork"在地点模型中。
当用户删除位置时,如果没有其他用户链接到该位置,则也会删除位置表中的相应元素。
我该如何处理这种情况?
答案 0 :(得分:0)
所以让我们说:
<Grid ManipulationDelta="Grid_ManipulationDelta">
<ListView x:Name="list" >
<TextBlock Text="CONTENT"/>
<TextBlock Text="CONTENT"/>
<TextBlock Text="CONTENT"/>
<TextBlock Text="CONTENT"/>
</ListView>
</Grid>
private void Grid_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
}
public MainPage()
{
var content = list.GetChildrenOfType<ScrollViewer>();
ScrollViewer scrollViewer = content.First() as ScrollViewer;
scrollViewer.ViewChanged += Content_ViewChanged;
}
private void Content_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
{
if ((sender as ScrollViewer).VerticalOffset == 0)
{
(sender as ScrollViewer).VerticalScrollMode = ScrollMode.Disabled;
}
}
您可能不需要显式定义中间表,但我们在此处使用它来表明它。这是一个简单的多对多设置。
当用户删除某个位置时,您将删除相应的UserLocation条目。然后,您可以查询UserLocation表以查看该位置的任何实例是否仍为其他用户保留。如果没有,请删除该位置。
例如:Billy和Sally是用户。比利增加纽约,这是一个新的位置。您创建Location条目,然后创建UserLocation条目。现在莎莉补充说纽约。纽约已经存在,所以你只需要为她创建UserLocation。
后来,莎莉删除了纽约。首先删除UserLocation条目,然后检查并查看Billy还有一个纽约条目,因此您可以单独保留位置。现在比利删除了纽约。删除他的UserLocation条目后,您会看到纽约不再有实例,因此您可以删除该位置。
也许您通过覆盖UserLocation delete()方法来检查和删除位置?