相关疑难解决方法(0)

在Django中获取模型的字段

给定一个Django模型,我试图列出它的所有字段.我已经看到了一些使用_meta模型属性执行此操作的示例,但是meta前面的下划线是否表示_meta属性是私有属性,不应该直接访问?...例如,因为_meta的布局将来可能会改变而不是一个稳定的API?

_meta是这个规则的例外吗?它是否稳定并且可以使用,或者它被认为是不好的做法?或者是否有函数或其他方法来反省模型的字段而不使用_meta属性?下面是一些链接的列表,显示了如何使用_meta属性执行此操作

任何建议都非常感谢.

django对象获取/设置字段

http://www.djangofoo.com/80/get-list-model-fields

如何反省django模型领域?

django introspection django-models metamodel

107
推荐指数
7
解决办法
9万
查看次数

Django管理界面中的只读模型?

如何在管理界面中将模型完全只读?这是一种日志表,我使用管理功能进行搜索,排序,过滤等,但不需要修改日志.

如果这看起来像重复,这不是我想要做的:

  • 我不是在寻找只读字段(即使只读取每个字段仍会让你创建新记录)
  • 我不打算创建一个只读用户:每个用户都应该只读.

django readonly django-admin

77
推荐指数
9
解决办法
5万
查看次数

Django admin在同一行显示多个字段

我创建了一个模型,它将自动显示模型中的所有字段并将其显示在管理页面上.

现在,我有一个问题,我想在同一行上有两个字段,为此我必须在ModelAdmin指定字段集:

fieldsets = (
        (None, {
            'fields': (('firstname', 'lastname'),)
        }),
       )
Run Code Online (Sandbox Code Playgroud)

我必须指定所有字段吗?因为数据库中有许多字段需要指定.

python django django-admin

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

Python/Django调试:打印模型包含数据

也许是一个简单的问题,但我不知道如何总结它,我会找到答案.

是否可以打印出所有可用的模型字段?

例如,在iPython中,我可以导入模型,只需编写模型名称,选项卡将显示模型具有的所有可用字段.

是否可以在不使用某种shell的情况下在代码中执行此操作?

我想使用某种命令(ea print_fields(self))并获取模型中的内容.

python printing django debugging

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

查找同一模型的两个实例之间的哪些字段不同

好吧,我认为问题解释了.

我有两个Django模型的实例,我想知道哪些字段不同.

你怎么能以聪明的方式做到这一点?

干杯!

django django-models

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

Django获取所有值Group By特定的一个字段

我想执行一个简单的查询,如:

    select *,count('id') from menu_permission group by menu_id
Run Code Online (Sandbox Code Playgroud)

在django格式中我尝试过:

    MenuPermission.objects.all().values('menu_id').annotate(Count('id))
Run Code Online (Sandbox Code Playgroud)

它只选择menu_id.查询执行:

    SELECT `menu_permission`.`menu_id`, COUNT(`menu_permission`.`id`) AS `id__count` FROM `menu_permission` GROUP BY `menu_permission`.`menu_id`
Run Code Online (Sandbox Code Playgroud)

但我也需要其他领域.如果我尝试:

   MenuPermission.objects.all().values('id','menu_id').annotate(Count('id))
Run Code Online (Sandbox Code Playgroud)

它按条件添加'id'.

  GROUP BY `menu_permission`.`id`
Run Code Online (Sandbox Code Playgroud)

结果我没有得到预期的结果.我如何通过组只获得一列所有对象?

django django-models

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

从值()或values_list()中排除字段

有没有一种有效的方法从函数中排除字段values()values_list.

例如

Videos.objects.filter(id=1).get().values()
Run Code Online (Sandbox Code Playgroud)

我想从此查询集中排除该字段duration.

我知道我可以在结果中指定字段,但是如果我只需要一个字段,那该怎么办.就像在这种情况下,如果我有20个字段,如果我只想要一个不是.

谢谢

python django django-models django-orm

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

从Django DetailView分页

给定一个models.py:

class Partner(models.Model):
    ... (fields irrelevant to this example)

class Lecture(models.Model):
    ... (other fields not relevant to this example)
    partner models.ForeignKey(Partner)
Run Code Online (Sandbox Code Playgroud)

我有每个的ListView和每个的DetailView(工作正常)。

问题是在“ Partner DetailView”页面上,我有“讲座”列表。在很多情况下,此列表可能会很长(例如,> 200),并且涉众希望对其进行分页。我在ListView页面上的分页没有问题(很简单),但是我似乎无法在合作伙伴的DetailView页面上弄清楚如何在他们的演讲列表上进行分页。

我希望在Django文档代码中看到类似以下内容的代码:

class PartnerDetailView(DetailView):
    model = Partner
    paginate_using = Lecture # (or something like self.lecture ?)
    paginate_by = 20
Run Code Online (Sandbox Code Playgroud)

因此,DetailView将作用于单个Partner对象,但将(轻松)允许从Lecture FK结果中进行分页。

有支持吗?还是会需要更多的自定义视图代码(也许将** kwargs中的'page'变量放入get_context_data()并基于该变量创建子集)?

在CBV下,这似乎是非常普遍的情况,所以我很困惑为什么搜索没有找到任何示例。

更新:我应该想到,执行此操作的一种简单方法是,将一个“页面”片段添加到引用DetailView的url()条目中,然后使用它在FK对象上创建分页的子集。

请注意,这也是解决“如何从FormView中分页结果”问题的可行方法。

django pagination detailview

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

Django从Field对象获取字段的名称

我试图找出从Field对象获取模型字段名称的推荐方法.

它似乎是field.name有效的(我从一些SO帖子中发现)如果field是对象名称,但令人惊讶的是它在文档中没有提到它,所以想知道它仍然是最好的方式还是我错过了一些明显的东西?

django django-models django-views

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