标签: django-models

如何在Django中使用SELECT MAX?

我有一个对象列表如何运行查询以给出字段的最大值:

我正在使用此代码:

def get_best_argument(self):
    try:
        arg = self.argument_set.order_by('-rating')[0].details
    except IndexError:
        return 'no posts'
    return arg
Run Code Online (Sandbox Code Playgroud)

rating是一个整数

django max django-models

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

如何找到两个Django查询集的并集?

我有一个带有两个自定义管理器方法的Django模型.每个都根据对象的不同属性返回模型对象的不同子集.

有没有办法获取查询集,或只是一个对象列表,这是每个管理器方法返回的查询集的并集?

python django django-models

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

django抽象模型与常规继承

除了语法之外,使用django抽象模型和使用普通Python继承与django模型之间的区别是什么?优点和缺点?

更新:我认为我的问题被误解了,我收到了关于抽象模型和继承自django.db.models.Model的类之间差异的回复. 我实际上想知道继承自django抽象类(Meta:abstract = True)的模型类与继承自say,'object'(而不是models.Model)的普通Python类之间的区别.

这是一个例子:

class User(object):
   first_name = models.CharField(..

   def get_username(self):
       return self.username

class User(models.Model):
   first_name = models.CharField(...

   def get_username(self):
       return self.username

   class Meta:
       abstract = True

class Employee(User):
   title = models.CharField(...
Run Code Online (Sandbox Code Playgroud)

python django django-models

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

获取TypeError:__ init __()缺少1个必需的位置参数:'on_delete'尝试在带有条目的子表后添加父表

我的sqlite数据库中有两个类,一个名为的父表Categorie和一个名为的子表Article.我首先创建了子表类并添加了条目.所以首先我有这个:

class Article(models.Model):
    titre=models.CharField(max_length=100)
    auteur=models.CharField(max_length=42)
    contenu=models.TextField(null=True)
    date=models.DateTimeField(
        auto_now_add=True,
        auto_now=False,
        verbose_name="Date de parution"
    )

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

在我添加了父表后,现在我models.py看起来像这样:

from django.db import models

# Create your models here.
class Categorie(models.Model):
    nom = models.CharField(max_length=30)

    def __str__(self):
        return self.nom


class Article(models.Model):
    titre=models.CharField(max_length=100)
    auteur=models.CharField(max_length=42)
    contenu=models.TextField(null=True)
    date=models.DateTimeField(
        auto_now_add=True,
        auto_now=False,
        verbose_name="Date de parution"
    )
    categorie = models.ForeignKey('Categorie')

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

所以当我跑步时python manage.py makemigrations <my_app_name>,我收到这个错误:

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-2.0

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

自定义/删除Django选择框空白选项

我正在使用Django 1.0.2.我写了一个由Model支持的ModelForm.此模型有一个ForeignKey,其中blank = False.当Django为此表单生成HTML时,它会创建一个选择框,其中包含ForeignKey引用的表中每一行的一个选项.它还在列表顶部创建一个没有值的选项,并显示为一系列破折号:

<option value="">---------</option>
Run Code Online (Sandbox Code Playgroud)

我想知道的是:

  1. 从选择框中删除此自动生成选项的最简洁方法是什么?
  2. 定制它的最简洁方法是什么,以便它显示为:

    <option value="">Select Item</option>
    
    Run Code Online (Sandbox Code Playgroud)

在寻找解决方案时,我遇到了Django票4653,这给我的印象是其他人有同样的问题,并且Django的默认行为可能已被修改.这张票超过一年,所以我希望可能有更清洁的方法来完成这些事情.

谢谢你的帮助,

杰夫

编辑:我已经配置了ForeignKey字段:

verb = models.ForeignKey(Verb, blank=False, default=get_default_verb)
Run Code Online (Sandbox Code Playgroud)

这确实设置了默认值,因此它不再是空/短划线选项,但不幸的是它似乎无法解决我的任何问题.也就是说,空/破折号选项仍然出现在列表中.

python django django-models django-forms

73
推荐指数
8
解决办法
5万
查看次数

使用Django auth UserAdmin作为自定义用户模型

来自Django.Contrib.Auth文档:

扩展Django的默认用户 如果您对Django的用户模型完全满意并且只想添加一些其他配置文件信息,您可以简单地子类化django.contrib.auth.models.AbstractUser并添加自定义配置文件字段.此类提供默认用户的完整实现作为抽象模型.

说完了.我创建了一个如下所示的新模型:

class MyUser(AbstractUser):
  some_extra_data = models.CharField(max_length=100, blank=True)
Run Code Online (Sandbox Code Playgroud)

这显示在管理员中几乎像Django的标准User.但是,admin中最重要的区别是密码 - (重新)设置字段不存在,而是显示正常的CharField.我是否真的必须覆盖admin-config中的内容才能使其正常工作?如果是这样,我怎么能以某种干燥的方式做到这一点(即没有从Django源中复制东西......等等......)?

django django-models django-admin django-authentication django-custom-user

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

django - 用过滤器获取最新记录

我试图获得最新的django模型对象,但似乎无法成功.

也不

obj = Model.objects.filter(testfield=12).latest()
Run Code Online (Sandbox Code Playgroud)

也不

obj = Model.objects.latest().filter(testfield=12)
Run Code Online (Sandbox Code Playgroud)

工作中.

请帮忙.

python django django-models django-queryset

73
推荐指数
5
解决办法
8万
查看次数

django模型选择单场

我有一个表/模型调用Employees,我想将单个字段的所有行作为查询集.

我知道我可以这样做(希望我能做到这一点):

emp_list = Employees.objects.get(all)
emp_names = emp_list.eng_name
Run Code Online (Sandbox Code Playgroud)

会在数据库中查询所有字段并只使用一个吗?这样做有更好(更快)的方法吗?

python django django-models

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

Django ModelForm:什么是save(commit = False)用于?

为什么我会使用save(commit=False)而不是仅仅从ModelForm子类创建一个表单对象并运行is_valid()来验证表单和模型?

换句话说,是save(commit=False)为了什么?

如果你不介意,你们可以提供假设情况,这可能有用吗?

django django-models django-forms

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

Django DateField默认选项

我有一个具有日期时间字段的模型:

date = models.DateField(_("Date"), default=datetime.now())

当我在内置的django admin中检查应用程序时,DateField也会附加时间,因此如果您尝试保存它,则会返回错误.如何使默认日期成为日期?(datetime.today()也不起作用)

python django django-models

71
推荐指数
5
解决办法
13万
查看次数