我有两个模特。一种是任务模型,另一种是报酬模型。
class Task(models.Model):
assigned_by = models.CharField(max_length=100)
class Reward(models.Model):
task = model.ForeignKey(Task)现在,我想返回一个任务的查询集以及其中的奖励字段。我试过这个查询。search_res =Task.objects.annotate(奖赏=‘奖励’)。
我得到了一个错误:注释‘奖励’与模型上的一个字段发生冲突。请告诉我如何解决这个问题。我希望在每个任务对象中都有一个字段奖励。
发布于 2017-05-30 06:52:34
为了达到你的目标与实际的模型,我将简单地使用与任务的关系。
假设您有一个任务(或一组任务):
t = Task.objects.get(pk=1)或
for t in Task.objects.all():你可以得到这样的奖励:
t.reward_set.first()处理异常,以防没有实际与任务相关的奖励。
这会导致对大型数据集的大量查询,因此您可以根据需要使用select_related或prefetch_related优化对DB的请求。请看Django的文档。
https://stackoverflow.com/questions/44254896
复制相似问题