我还没有找到足够好的答案,所以我在这里问。我有股息和股票模型。
class Dividend(models.Model):
attributes...
stock = models.ForeignKey(Stock)
Run Code Online (Sandbox Code Playgroud)
我需要创建Queryset的副本,因为我想将带有一些额外值的红利传递给模板,并且我不希望将这些额外值插入数据库。
dividend_set = stock.dividend_set.all().order_by('date')
dividend_set.create(...)
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?上面的代码将在我的stock.dividend_set中创建数据。我是否必须使用Deepcopy或将queryset转换为list?还是有更优雅的方式?
一种简单的方法是将查询集转换为列表。该列表将包含您的模型的实例。您可以对这些实例执行任何操作,除非调用save或写入数据库的其他方法之一,否则不会将任何内容保存到数据库。
dividend_set = stock.dividend_set.all().order_by('date')
dividends = list(dividend_set)
for dividend in dividends:
dividend.extra_value1 = 'foo'
dividend.extra_value2 = 'bar'
# now pass the dividends list to your template as part of your context rather than the qs
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1656 次 |
| 最近记录: |