我有一个如下的配置表,有些用户具有不同的属性。我需要获取基于用户属性的配置数据。
我不知道如何实现它,不知道。
初始代码:
slug = self.kwargs.get('slug')
# assuming that you've a field called slug in Category model
Courses.objects.filter(category__slug=slug)
如果GoodCode =“ A”和用户(UserType =“ personal”,Country =“ US”,State =“ NewYork”,City =“ Albany”),我希望得到ConfigCode =“ 36”; < / p>
如果GoodCode =“ A”和用户(UserType =“ personal”,Country =“ China”,State =“ Guangdong”,City =“”),我希望得到ConfigCode =“ 39”; >
如果GoodCode =“ A”和用户(UserType =“ personal”,Country =“”,State =“”,City =“”),我希望得到ConfigCode =“ 33”;
如果GoodCode =“”和用户(UserType =“ personal”,Country =“”,State =“”,City =“”),我希望得到ConfigCode =“ 9”;
如果GoodCode =“ B”和用户(UserType =“”,Country =“”,州=“”,城市=“”),我希望获得ConfigCode =“ 1”;
答案 0 :(得分:1)
最简单的方法就是开始工作。在这种情况下,假设有人给您以下输入:
{ GoodCode="A", UserType="organization", Country="China", State="Guangdong", City="", Price=47 }
因此,您使用该数据创建了一个新的ConfigEntity
:
var searchFor = new ConfigEntity(
ConfigCode="??", GoodCode="A", UserType="organization",
Country="China", State="Guangdong", City="", Price=47);
然后您依次搜索列表:
ConfigEntity foundItem = null;
foreach (var f in configList)
{
if (f.GoodCode == searchFor.GoodCode &&
f.UserType == searchFor.UserType &&
f.Country == searchFor.Country &&
f.State == searchFor.State &&
f.City == searchFor.City)
{
foundItem = f;
break;
}
}
if (foundItem != null)
{
// found the item. Do something with it.
}
else
{
// didn't find the item. Handle the error.
}
这不是最好或最有效的处理方法,但是它可以工作。这是一个可以改进的起点。