小编bum*_*bee的帖子

Django注释来自另一个模型的字段值

我想用另一个历史模型中的值来注释 MyModel 查询集。我的模型关系如下:

class Stage(models.Model):
    name = models.CharField()


class History(models.Model):
    mymodel = models.ForeignKey(
        MyModel,
        on_delete=models.CASCADE,
    )
    stage = models.ForeignKey(
        Stage,
        on_delete=models.DO_NOTHING
     )
    created_at = models.DateTimeField(
        auto_now_add=True
    )

class MyModel(models.Model):
    id = models.AutoField(
        primary_key=True,
    )
    ...
Run Code Online (Sandbox Code Playgroud)

我想在 ViewSet 中执行的大致操作(order_by 我需要获取最新阶段):

class MyModelViewSet(viewsets.ModelViewSet):
    ...
    def get_queryset(self):
        qs = super(MyModelViewSet, self).get_queryset()
        qs = qs.annotate(last_stage_name=Value(
            History.objects.filter(mymodel__id=F('id')).order_by('-created_at')[0].stage.name,
            output_field=CharField()))
Run Code Online (Sandbox Code Playgroud)

但是我从第一个对象获得所有对象的相同阶段,而不是每个对象的最新阶段,因此操作逻辑是错误的。我想我应该摆脱 History.objects.filter 但找不到合适的解决方案。

python django django-rest-framework

2
推荐指数
1
解决办法
4987
查看次数

设置默认值以反应boostrap Form.Check

我有以下复选框代码:

<Form.Group  controlId="formBasicCheckbox">
       <Form.Check
             onChange={(disabled)=> {disabled ? packed = 'yes' : packed = 'no'}} >
       </Form.Check>
</Form.Group>
Run Code Online (Sandbox Code Playgroud)

我还需要为其设置默认值,但找不到方法来做到这一点。我尝试了“value”、“defaultValue”,但没有任何帮助,谷歌也没有。

javascript reactjs react-bootstrap

1
推荐指数
1
解决办法
6962
查看次数