小编Yas*_*jar的帖子

如何在没有重复字段的情况下注释字段 django

所以我基本上有这个简单的模型:

class BaseLesson(models.Model):
    YOUTUBE_VIDEO = '0'
    MARKDOWN = '1'

    TYPE_CHOICES = (
        (YOUTUBE_VIDEO, 'youtube-video'),
        (MARKDOWN, 'markdown'),
    )

    type = models.CharField(
        max_length=10, choices=TYPE_CHOICES, default=MARKDOWN, verbose_name=_('type'))

    shown_users = models.ManyToManyField(
        User, related_name='lessons', verbose_name=_('shown users'), blank=True)

    objects = managers.BaseLessonManager()
Run Code Online (Sandbox Code Playgroud)

与show_users中的User模型存在多对多关系

我想根据多对多表注释 is_shown 状态,所以我这样做了:

class BaseLessonManager(InheritanceManager, CachingManager):
    def get_lesson_with_is_shown(self, user):
    
        shown_user_case = django_models.Case(
            django_models.When(shown_users__id=user.id,
                               then=django_models.Value(True)),
            default=django_models.Value(False),
            output_field=django_models.BooleanField())

        return self.get_queryset().annotate(
            is_shown=shown_user_case)
Run Code Online (Sandbox Code Playgroud)

这样做的问题是,如果 user1 和 user2 看到相同的课程,它将重复,例如:

+-----------------+-----------+
|    lesson_id    |  user_id  |
+-----------------+-----------+
|        1        |     1     |
|        1        |     2     |
|        1        | …
Run Code Online (Sandbox Code Playgroud)

django django-models django-orm

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

为什么 VS2015 社区中缺少扩展管理器?

我注意到我的 VS2015 社区的“工具”菜单中不再有“扩展管理器”了!可能是什么原因造成的?

我卸载了它,然后重新安装VS2015 professional,第一次启动后又发现了。下次启动时它再次消失(还有其他扩展)!

这是我到目前为止所做的:

1-再次卸载。

2-从“C:\user(USERNAME)\local\microsoft\Visual Studio\14.0”中删除“extensions”文件夹

3-重新安装(专业版)。

4-同样的问题!

visual-studio-extensions visual-studio-2015

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