假设我有两个看起来像这样的模型:
class ProductType(models.Model):
product_type = models.CharField(max_length=100)
class Product(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField()
product_type = models.ForeignKey(ProductType)
score = models.PositiveIntegerField(default=0)
现在我想从每个ProductType中获取前两个产品(两个得分最高的产品).因此,如果我有手机,电脑,电视作为ProductTypes,我想要两个最好的手机,电脑,电视.
因为我甚至不知道如何在MySQL中执行此操作,所以我尝试搜索MySQL解决方案,但我找到的解决方案非常复杂,这并不是一件非常复杂的事情.
我倾向于为顶级产品制作一个自己的模型,并有一个cronjob来解决这个问题,但我想看看是否有一个更简单的解决方案.
所以我有一个像这样的指针向量:
vector<Example*> ve;
Run Code Online (Sandbox Code Playgroud)
我用这样的指针填充这个向量
Example* e = new Example();
ve.push_back(e)
Run Code Online (Sandbox Code Playgroud)
但是当我想删除它们时,我如何确保它们被取消分配?这够了吗?
ve.erase(ve.begin() + 1)
delete ve[1]
Run Code Online (Sandbox Code Playgroud) 我有四个不同的列表.headers,descriptions,short_descriptions和misc.我想将这些组合成所有可能的打印方式:
header\n
description\n
short_description\n
misc
Run Code Online (Sandbox Code Playgroud)
就像我有(我在这个例子中跳过short_description和misc,原因很明显)
headers = ['Hello there', 'Hi there!']
description = ['I like pie', 'Ho ho ho']
...
Run Code Online (Sandbox Code Playgroud)
我希望它打印出来像:
Hello there
I like pie
...
Hello there
Ho ho ho
...
Hi there!
I like pie
...
Hi there!
Ho ho ho
...
Run Code Online (Sandbox Code Playgroud)
你会说最好/最干净/最有效的方法是什么?是for唯一的出路吗?
我想做这样的事情:
# models.py
class Model(models.Model):
name_in_my_model = models.CharField(max_length=100)
# later
fieldname = 'name_in_my_model'
# this is what I want to do somehow:
obj = Model.objects.get(pk=1)
obj.fieldname = 'new name'
obj.save()
这可能吗?我正在创建一个可重用的应用程序,用户需要指定一个将由我的应用程序更新的字段的名称.