小编Dan*_*ine的帖子

如何使用ModelMultipleChoiceFilter?

我一直试图让ModelMultipleChoiceFilter工作几个小时,并阅读了DRF和Django Filters文档.

我希望能够根据通过ManyToManyField分配给它们的标记来过滤一组网站.例如,我希望能够获得已标记为"烹饪"或"养蜂"的网站列表.

这是我当前models.py的相关片段:

class SiteTag(models.Model):
    """Site Categories"""
    name = models.CharField(max_length=63)

    def __str__(self):
        return self.name

class Website(models.Model):
    """A website"""
    domain = models.CharField(max_length=255, unique=True)
    description = models.CharField(max_length=2047)
    rating = models.IntegerField(default=1, choices=RATING_CHOICES)
    tags = models.ManyToManyField(SiteTag)
    added = models.DateTimeField(default=timezone.now())
    updated = models.DateTimeField(default=timezone.now())

    def __str__(self):
        return self.domain
Run Code Online (Sandbox Code Playgroud)

我目前的views.py片段:

class WebsiteFilter(filters.FilterSet):
    # With a simple CharFilter I can chain together a list of tags using &tag=foo&tag=bar - but only returns site for bar (sites for both foo and bar exist).
    tag = django_filters.CharFilter(name='tags__name')

    # THE …
Run Code Online (Sandbox Code Playgroud)

python django django-filter django-rest-framework

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

GCC Macro 1 + 1不等于2?

我正在定义使用GCC进行编译的Tiva C系列Launchpad的寄存器.

在头文件中我有如下代码:

样品A.

#define GPIOB_BASE 0x40005000
#define GPIOB_AFSEL_R (*((unsigned long *) GPIOB_BASE + 0x420))
#define GPIOB_DEN_R (*((unsigned long *) GPIOB_BASE + 0x51C)) 
#define GPIOB_PCTL_R (*((unsigned long *) GPIOB_BASE + 0x52C))
Run Code Online (Sandbox Code Playgroud)

为了检查它是否正在按照我的想法进行操作,我编写了这个小程序并按预期返回"10".我继续我的项目,并迅速遇到硬故障的大问题(写入不可写的地址).

宏测试

#include <stdio.h>

#define BASE 0x9
#define BASE + PLUS_ONE 0x01

int main(void){
    printf("%d", PLUS_ONE);
}
Run Code Online (Sandbox Code Playgroud)

经过几个小时的拉动我的头发试图调试,我最终用硬编码的等价物替换了地址.

样品B.

#define GPIOB_BASE 0x40005000
#define GPIOB_AFSEL_R (*((unsigned long *) 0x40005420))
#define GPIOB_DEN_R (*((unsigned long *) 0x4000551C))
#define GPIOB_PCTL_R (*((unsigned long *) 0x4000552C))
Run Code Online (Sandbox Code Playgroud)

硬故障消失了,事情开始起作用了!

有人可以帮我理解样品A和样品B之间的区别吗?

(是的,我应该更加关注生成的汇编代码)

c macros gcc

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

标签 统计

c ×1

django ×1

django-filter ×1

django-rest-framework ×1

gcc ×1

macros ×1

python ×1