我有一个对象列表如何运行查询以给出字段的最大值:
我正在使用此代码:
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模型.每个都根据对象的不同属性返回模型对象的不同子集.
有没有办法获取查询集,或只是一个对象列表,这是每个管理器方法返回的查询集的并集?
除了语法之外,使用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) 我的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) 我正在使用Django 1.0.2.我写了一个由Model支持的ModelForm.此模型有一个ForeignKey,其中blank = False.当Django为此表单生成HTML时,它会创建一个选择框,其中包含ForeignKey引用的表中每一行的一个选项.它还在列表顶部创建一个没有值的选项,并显示为一系列破折号:
<option value="">---------</option>
Run Code Online (Sandbox Code Playgroud)
我想知道的是:
定制它的最简洁方法是什么,以便它显示为:
<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)
这确实设置了默认值,因此它不再是空/短划线选项,但不幸的是它似乎无法解决我的任何问题.也就是说,空/破折号选项仍然出现在列表中.
扩展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
我试图获得最新的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)
工作中.
请帮忙.
我有一个表/模型调用Employees,我想将单个字段的所有行作为查询集.
我知道我可以这样做(希望我能做到这一点):
emp_list = Employees.objects.get(all)
emp_names = emp_list.eng_name
Run Code Online (Sandbox Code Playgroud)
会在数据库中查询所有字段并只使用一个吗?这样做有更好(更快)的方法吗?
为什么我会使用save(commit=False)而不是仅仅从ModelForm子类创建一个表单对象并运行is_valid()来验证表单和模型?
换句话说,是save(commit=False)为了什么?
如果你不介意,你们可以提供假设情况,这可能有用吗?
我有一个具有日期时间字段的模型:
date = models.DateField(_("Date"), default=datetime.now())
当我在内置的django admin中检查应用程序时,DateField也会附加时间,因此如果您尝试保存它,则会返回错误.如何使默认日期成为日期?(datetime.today()也不起作用)