我在模型上有一个如下所示的IntegerField:
amount = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)
访问它时,它有时会返回一个字符串.造成这种情况的最直接原因是它已经为其分配了一个字符串.到目前为止,如此愚蠢.它甚至在保存后也会返回一个字符串.
这让我感到有些惊讶:如果IntegerField在赋值时将其值强制转换为整数(或者,最迟在保存时),那将是很好的,因此用户可以依赖它作为整数.
(我的应用程序使用sqlite.)
有没有办法让IntegerField只返回整数?或者我是否必须创建自定义字段才能执行此操作?
考虑这些伪类:
class Foo(models.Model):
pass
class Bar(models.Model):
foo = models.ForeignKey(Foo)
Run Code Online (Sandbox Code Playgroud)
我想通过Foo的管理器有效地过滤一个QuerySet,它只保存Foo对象,并且至少有2个Bar对象指向它.
class Toy(models.Model):
name = models.CharField(max_length=20)
desc = models.TextField()
class Box(models.Model):
name = models.CharField(max_length=20)
proprietor = models.ForeignKey(User, related_name='User_Box')
toys = models.ManyToManyField(Toy, blank=True)
Run Code Online (Sandbox Code Playgroud)
如何创建一个将玩具添加到Box的视图?
def add_this_toy_to_box(request, toy_id):
Run Code Online (Sandbox Code Playgroud) 有没有一种有效的方法从函数中排除字段values()或values_list.
例如
Videos.objects.filter(id=1).get().values()
Run Code Online (Sandbox Code Playgroud)
我想从此查询集中排除该字段duration.
我知道我可以在结果中指定字段,但是如果我只需要一个字段,那该怎么办.就像在这种情况下,如果我有20个字段,如果我只想要一个不是.
谢谢
我正在为django中的java应用程序构建UI.我想根据JPA创建的Java表创建Java表.为此,当我使用ManyToMany字段时,新创建的中间表的列名与JPA的列名不匹配.
有没有办法可以为表中的列提供自定义名称所以,以便在Java中不会出现Missing列错误.
任何帮助将非常感激.
在Django中对外键关系进行反向查找的正确方法是什么?例如,假设我有以下2个型号.
class Songs(models.Model):
title = models.CharField(max_length=200)
artist = models.CharField(max_length=200)
genre = models.ForeignKey('Genres')
class Genres(models.Model):
genre = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)
如果我希望用户能够根据流派搜索歌曲我该怎么做?
例如,下面是我想要做的,但我知道它不起作用,因为Songs表的流派列是ID,而不是关键字.
song = models.Songs.objects.get(genre='Jazz')
Run Code Online (Sandbox Code Playgroud) 我做了一个查询来从模型中获取所有字段值.我将结果存储在一个查询集中.
queryset=Books.objects.filter(book_type="comic")
Run Code Online (Sandbox Code Playgroud)
现在,当我过滤此查询集时:
query=queryset.filter(~Q(auther_id=1))
autherList=[]
for q in query:
autherList.append(q.auther_id)
print autherList
Run Code Online (Sandbox Code Playgroud)
它将列表打印为:
[3L, 4L, 9L, 13L, 53L, 53L, 102L, 111L, 111L, 111L, 111L]
Run Code Online (Sandbox Code Playgroud)
我的问题是:这个L表示什么以及如何删除它以获得一个简单的ID列表.
我看了看这个,但找不到任何关于这一点.
当.distinct()在一组对象上使用时,相同的值被反复重复,这违背了使用的目的.distinct()
我正在研究的项目的一个例子:
In [5]: Section.objects.filter(module=15).values('section').distinct()
Out[5]: [{'section': '1'}, {'section': '2'}, {'section': '2'}, {'section': '2'}, {'section': '2'}, {'section': '2'}, {'section': '2'}, {'section': '2'}, {'section': '2'}, {'section': '2'}, {'section': '2'}, {'section': '2'}, {'section': '2'}, {'section': '2'}, {'section': '2'}, {'section': '2'}, {'section': '2'}, {'section': '2'}, {'section': '2'}, {'section': '2'}, '...(remaining elements truncated)...']
Run Code Online (Sandbox Code Playgroud)
为什么它返回每个值而不是仅返回不同的值?
供参考,这是我的模型:
class Section(models.Model):
module = models.ForeignKey(Module, on_delete=models.CASCADE)
title = models.CharField(max_length=400)
section = models.CharField(max_length=3)
topic = models.CharField(max_length=3)
subtopic = models.CharField(max_length=3)
subsubtopic = models.CharField(max_length=3)
language = models.CharField(max_length=2)
def __str__(self): …Run Code Online (Sandbox Code Playgroud) 让我们说有一个作者,他有书.为了将作者与书面页面的数量一起获取,可以完成以下操作:
Author.objects.annotate(total_pages=Sum('book__pages'))
Run Code Online (Sandbox Code Playgroud)
但是,如果我想分别对科幻和奇幻书籍的页面进行总结呢?我想最终得到一个具有total_pages_books_scifi_pages和total_pages_books_fantasy_pages属性的作者.
我知道我可以做以下事情:
Author.objects.filter(book__category='scifi').annotate(total_pages_books_scifi_pages=Sum('book__pages'))
Author.objects.filter(book__category='fantasy').annotate(total_pages_books_fantasy_pages=Sum('book__pages'))
Run Code Online (Sandbox Code Playgroud)
但是如何在一个查询集中呢?
我使用django_tables2呈现我的表。对于一张表,我只想查看最近的5个条目。因此,我需要在将查询集传递给表对象之前对其进行排序:
qset = myObject.objects.order_by('-start_time').all()[:5]
table = MyTableClass(qset, template='path/to/template.html')
Run Code Online (Sandbox Code Playgroud)
这将产生以下错误消息:
AssertionError: Cannot reorder a query once a slice has been taken.
Run Code Online (Sandbox Code Playgroud)
我可以orderable=False为每个设置django_tables.Column,但是由于MyTableClass继承自另一个表类,因此我想避免这种情况。
提前致谢