小编art*_*t06的帖子

django - annotate() - 在另一列上有过滤器的列的Sum()

我有以下两种型号.

class Product(models.Model):
    product_group=models.ForeignKey('productgroup.ProductGroup', null=False,blank=False)
    manufacturer=models.ForeignKey(Manufacturer, null=False,blank=False)
    opening_stock=models.PositiveIntegerField(default=0)

    class Meta:
        unique_together = ('product_group', 'manufacturer')
Run Code Online (Sandbox Code Playgroud)

TRANSACTION_TYPE=(('I','Stock In'),('O','Stock Out'))
class Stock(models.Model):
    product=models.ForeignKey('product.Product', blank=False,null=False)
    date=models.DateField(blank=False, null=False,)
    quantity=models.PositiveIntegerField(blank=False, null=False)
    ttype=models.CharField(max_length=1,verbose_name="Transaction type",choices=TRANSACTION_TYPE, blank=False)
Run Code Online (Sandbox Code Playgroud)

我需要列出所有产品stock_in_sum=Sum(of all stock ins),stock_out_sum=Sum(of all stock outs)blance_stock=opening_stock+stock_in_sum - stock_out_sum

这是我到目前为止所取得的成就.

class ProductList(ListView):
    model=Product

    def get_queryset(self):
        queryset = super(ProductList, self).get_queryset()
        queryset = queryset.prefetch_related('product_group','product_group__category','manufacturer')
        queryset = queryset.annotate(stock_in_sum = Sum('stock__quantity'))
        queryset = queryset.annotate(stock_out_sum = Sum('stock__quantity'))
Run Code Online (Sandbox Code Playgroud)

我需要得到

  1. stock_in_sum 作为 sum(quantity) where ttype='I'
  2. stock_out_sum 作为 sum(quantity) where ttype='O'
  3. blance_stockproduct.opening_stock …

django listview django-annotate

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

当网络调用参数带有“/”时,Cypress拦截()失败

我需要为某些网络调用添加 cy.wait() ,该调用的参数中带有正斜杠。

例如:http ://example.com/myPage1?id=598dccc6&startDate=10/01/2023&endDate=11/01/2023

为此,我添加了以下拦截,

cy.intercept('http://example.com/myPage1**').as('myPage1');
Run Code Online (Sandbox Code Playgroud)

但是,cy.wait('@myPage1').its('response.statusCode').should('eq',200);超时并且测试用例失败。

我应该怎么办?

谢谢。


回复@agoff

不知怎的,这行不通。我的baseUrl就像是使用查询参数http://192.168.43.82/font-end/#/进行 api 调用http://192.168.43.82/rest/api/myPage

我试过了

cy.intercept(
          {
            pathname:'/rest/api/myPage',
            method:'POST'
        }).as('myPage');
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?

cypress cypress-intercept

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

django - CreateView - 如何显示在下拉列表中选择的特定选项

我有如下所示的模型。

class ProductGroup(models.Model):
    name = models.CharField(max_length=30,null=False, blank=False)
    category=TreeForeignKey('category.Category', null=False,blank=False)
Run Code Online (Sandbox Code Playgroud)

我有一个 CreateView 作为

class CreateProductGroup(CreateView):
    model = ProductGroup
    fields = ['name', 'category']
Run Code Online (Sandbox Code Playgroud)

我的这个视图的 url 模式是

url(r'^create-group/(?P<pk>[0-9]+)/$', views.CreateProductGroup.as_view(), name='create_group'),
Run Code Online (Sandbox Code Playgroud)

我通过 url 从 category_detail.html 页面传递 category_id 作为

<a href="{%url 'create_group' object.id %}">Create product group</a>
Run Code Online (Sandbox Code Playgroud)

这是我的表格

<form method="post">
        {% csrf_token %}
        {% bootstrap_form form %}
        {% buttons %}
            <button type="submit" class="btn btn-primary">
                Submit
            </button>

        {% endbuttons %}
    </form>
Run Code Online (Sandbox Code Playgroud)

现在,如何在表单中选择的 url 中显示与 id 对应的类别?

django django-templates

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