小编dra*_*oon的帖子

Django只选择具有重复字段值的行

假设我们在django中有一个模型定义如下:

class Literal:
    name = models.CharField(...)
    ...
Run Code Online (Sandbox Code Playgroud)

名称字段不是唯一的,因此可以具有重复值.我需要完成以下任务:从模型中选择至少具有该name字段的重复值的所有行.

我知道如何使用纯SQL(可能不是最佳解决方案):

select * from literal where name IN (
    select name from literal group by name having count((name)) > 1
);
Run Code Online (Sandbox Code Playgroud)

那么,是否可以使用django ORM选择它?或更好的SQL解决方案?

sql django django-orm

86
推荐指数
4
解决办法
4万
查看次数

具有外键创建的Django模型对象

嗨假设我有一个像这样的简单模型类:

class TestModel(models.Model):
    testkey = models.ForeignKey(TestModel2)
    ...
Run Code Online (Sandbox Code Playgroud)

当我创建一个TestModel对象时,我必须传递一个TestModel2对象的实例来创建它:

testkey =TestModel2.objects.get(id=...)
TestModel.objects.create(testkey=testkey)
Run Code Online (Sandbox Code Playgroud)

这导致我想要对数据库进行2次查询,并且我有一个创建对象所需的外键ID列表.

是否可以在不初始检索外键对象的情况下使用外键创建对象?

django django-models

47
推荐指数
3
解决办法
4万
查看次数

Django查询不区分大小写的列表匹配

我有一个名称列表,我想匹配不区分大小写,有没有办法在不使用下面的循环的情况下执行此操作?

a = ['name1', 'name2', 'name3']
result = any([Name.objects.filter(name__iexact=name) for name in a])
Run Code Online (Sandbox Code Playgroud)

django django-queryset

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

Django在模型中存储用户图像

我正在尝试在模型中创建一个字段,该字段应该为注册用户存储图像.此图像应重命名并存储在单独的用户目录中media/users/10/photo.jpeg.

我搜索了很多,但仍然无法找到如何干净,正确地做到这一点.在我看来,许多网站需要相同的功能,这应该在django文档中,但事实并非如此.

django django-models

27
推荐指数
1
解决办法
3万
查看次数

Django测试夹具和内容类型

我在我的模型中使用了django的ContentType外键,我正在使用它来进行单元测试.

因此,我必须在我的fixture中硬编码content_type_id,但django有时会将其初始化为不同的值,因此我的测试失败了.

那么有没有办法安全地预测模型的content_type_id或任何其他适当的方式来处理这种情况?

django django-testing django-contenttypes

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

DecisionTreeClassifier与ExtraTreeClassifier

我试图弄清楚scikit-learn包中的哪种决策树方法更适合我执行分类任务的需要.

但是,我发现有两种决策树模型可用:

  • 标准DecisionTreeClassifier基于scikit.tree包的优化CART算法.
  • 来自scikit.ensemble包的集合方法ExtraTreeClassifier.

任何人都可以指出使用这些模型的优点和缺点吗?

decision-tree scikit-learn

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

Django 查询选择具有非零子级的父级

我有一个带有外键的模型,如下所示:

class Concept(models.Model):
    name = models.CharField(max_length=200)
    category = models.ForeignKey('self')
Run Code Online (Sandbox Code Playgroud)

但我不知道如何选择所有具有非零子值的概念。这可以通过 django QuerySet API 实现吗?或者我必须编写自定义 SQL?

django django-queryset hierarchical-data

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

使用SnapHelper的RecyclerView,scrollToPosition之后没有捕捉项目

我的活动中有一个RecyclerView,并附加了LinearSnapHelper:

TimePickerAdapter timePickerAdapter = new TimePickerAdapter(hours);
recyclerView = (RecyclerView) root.findViewById(R.id.recycler_view);

final SnapHelper snapHelper = new LinearSnapHelper();
snapHelper.attachToRecyclerView(recyclerView);
Run Code Online (Sandbox Code Playgroud)

问题是,当我最初要滚动到特定项目时,不会触发捕捉帮助器来附加该项目(请参见图片):

recyclerView.getLayoutManager().scrollToPosition(timePickerAdapter.getCurrentPosition());
Run Code Online (Sandbox Code Playgroud)

当我用手滚动时,它开始按预期工作。有什么解决办法吗?

在此处输入图片说明

android android-recyclerview

3
推荐指数
2
解决办法
2620
查看次数

Django 自定义 AdminModel 视图

在我的 Django 应用程序中,我Guest有为所有未注册用户创建的用户帐户(他们都有 email='guest@mysite.com')。同时我创建了一些与Guest账户相关的演示对象。这些对象与注册用户的对象位于同一个表中(具有相同的模型)。而且我有更多这些对象的一种类型(模型),例如:

class Object1(models.Model):
    user = ForeignKey(...)
    ...

class Object2(models.Model):
    user = ForeignKey(...)
    ...
Run Code Online (Sandbox Code Playgroud)

我想要实现的是在django admin 中查看与访客帐户相关的所有对象时过滤掉它们。

现在我子类化django.contrib.admin.views.main.ChangeList并覆盖get_query_set方法来执行所需的排除,并get_changelist在运行时重新定义django 的 ModelAdmin 类的方法:

class FilteredChangeList(ChangeList):
    def get_query_set(self):
        qs = super(FilteredChangeList, self).get_query_set()
        if is_related_to(self.model, Profile):
            qs = qs.exclude(user__email='guest@mysite.com')
        return qs

def my_getchangelist(self, request, **kwargs):
    return FilteredChangeList

ModelAdmin.get_changelist = my_getchangelist
Run Code Online (Sandbox Code Playgroud)

我认为在运行时重新定义 django 的方法是一种不好的做法,那么是否有针对该问题的正确解决方案?

python django django-admin

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

Django列表的id作为表单字段

如果这个问题出现在某个地方我很抱歉,但我找不到任何东西.

所以,问题很简单:这些是模仿行为的任何django原生形式request.POST.getlist('something')吗?

在我的UI中,用户创建了一个他想要保存的对象列表,这些对象表示为具有相同名称的隐藏输入列表:

<input type="hidden" name="cc" value="1045">
<input type="hidden" name="cc" value="1055">
<input type="hidden" name="cc" value="1046">
Run Code Online (Sandbox Code Playgroud)

request.POST.getlist 完全符合我的需要,但我不想直接处理请求,我想通过表单来做.

django django-forms

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