Tag: django models

Django查询date时间超过5小时的对象

我试图写一个Django查询超过5个小时的小部件,我有点失落。 小部件模型有一个DateTimeField ,它被填充了小部件的创build时间。

Django:在模型保存中获取当前用户

我想在models.py的保存方法中获取当前login的用户(request.user)。 我想检查用户的angular色,并根据他的angular色执行一些操作。 我已经给出下面的models.py代码。 models.py class TimeSheet(models.Model): check_in_time = models.TimeField() check_out_time = models.TimeField() class Tasks(models.Model): time_sheet = models.ForeignKey(TimeSheet) project = models.ForeignKey(Project) start_time = models.TimeField() end_time = models.TimeField() def save(self, *args, **kwargs): project = SpentTime.objects.get(project__project__id = self.project.id) start = datetime.datetime.strptime(str(self.start_time), '%H:%M:%S') end = datetime.datetime.strptime(str(self.end_time), '%H:%M:%S') time = float("{0:.2f}".format((end – start).seconds/3600.0)) if common.isDesigner(request.user): SpentTime.objects.filter(project__project__id = self.project.id).update(design = float(project.design) […]

如何内省django模型领域?

我试图获取模型中的字段的类信息,当我只知道字段的名称和模型的名称(都是纯string)。 这怎么可能? 我可以dynamic加载模型: from django.db import models model = models.get_model('myapp','mymodel') 现在我有场 – 'myfield' – 我怎样才能得到这个领域的课程? 如果该领域是关系 – 如何获得相关领域? 谢谢一堆!

如何过滤Django中的计数注释对象?

考虑简单的Django模型Event和Participant : class Event(models.Model): title = models.CharField(max_length=100) class Participant(models.Model): event = models.ForeignKey(Event, db_index=True) is_paid = models.BooleanField(default=False, db_index=True) 注释参与者总数的事件查询很容易: events = Event.objects.all().annotate(participants=models.Count('participant')) 如何使用is_paid=True过滤参与者的is_paid=True ? 我需要查询所有事件,无论参与者的数量,例如我不需要通过注释的结果过滤。 如果有0参与者,没关系,我只需要注释值为0 。 文档中的示例在这里不起作用,因为它将查询中的对象排除在外,而不用0注释它们。 更新。 Django 1.8有新的条件expression式function ,所以现在我们可以这样做: events = Event.objects.all().annotate(paid_participants=models.Sum( models.Case( models.When(participant__is_paid=True, then=1), default=0, output_field=models.IntegerField() )))

“RelatedManager”对象不是可迭代的Django

嘿,我已经环顾了一些在这里的simliarpost,但没有发现任何已经解决了我的问题。 我有以下型号, from django.db import models class Areas(models.Model): name = models.CharField(max_length = 120) order_in_sidebar_network = models.IntegerField(blank=True, null=True) order_in_section_network = models.IntegerField(blank=True, null=True) def __unicode__ (self): return self.area_name class Meta: verbose_name_plural = "Areas" verbose_name = "Area" class Countries(models.Model): name = models.CharField(max_length = 120, help_text = "The name of the country") area = models.ForeignKey(Areas, verbose_name = 'Area') def […]

用Django 1.5实现多个用户types

使用Django 1.5新的可configuration用户模型function实现多种用户types的推荐方法是什么? 我想有两种用户types:私人用户和交易用户,每个用户都有自己的一组必填字段。 有两种方法可以实现这一点: 1)多表inheritance class BaseUser(AbstractBaseUser): email = models.EmailField(max_length=254, unique=True) # … class PrivateUser(BaseUser): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) # … class TradeUser(BaseUser): company_name = models.CharField(max_length=100) # … 将多表inheritance与可configuration的用户模型结合使用会有什么问题吗? 2)使用具有“type”属性的单个模型 class User(AbstractBaseUser): email = models.EmailField(max_length=254, unique=True) user_type = models.CharField(max_length=30, choices={ 'P': 'Private', 'T': 'Trade', }) first_name = models.CharField(max_length=30, blank=True) last_name = models.CharField(max_length=30, blank=True) […]

Django的 – FileField检查是否无

我有一个可选文件字段的模型 class MyModel(models.Model): name = models.CharField(max_length=50) sound = models.FileField(upload_to='audio/', blank=True) 让我们把价值 >>> test = MyModel(name='machin') >>> test.save() 为什么我得到这个? >>> test.sound <FieldFile: None> >>> test.sound is None False 我怎样才能检查是否有文件集?

一对多内联select与Django的pipe理员

我有一个标准的多对一的关系设置。 有很多领域,但是对于我们来说,相关的模型是: class Class(models.Model): name = models.CharField(max_length=128) class Student(models.Model): class = models.ForeignKey(Class) name = models.CharField(max_length=128) address = models.CharField(max_length=128) # …etc 我创build了一个pipe理员,而且效果很好。 甚至当我编辑一个学生时,它甚至可以自动设置课程。 但是,当我去创build/编辑一个类,我得到的是名称的input框。 有没有一种方法来添加一个框可以添加学生作为类的成员从class级pipe理页面? 我可以内联表格,但是这是创build新的学生。 我已经创build了所有我的学生,只是寻找一种快速的方法,将多个现有的学生添加到不同的课程“。

TypeError:'RelatedManager'对象不可迭代

Django的 我有下一个型号: class Group(models.Model): name = models.CharField(max_length=100) parent_group = models.ManyToManyField("self", blank=True) def __unicode__(self): return self.name class Block(models.Model): name = models.CharField(max_length=100) app = models.CharField(max_length=100) group = models.ForeignKey(Group) def __unicode__(self): return self.name 比如块b1有g1组。 通过它的名字,我想从组g1中获取所有块 。 我写了下一个recursion函数: def get_blocks(group): def get_needed_blocks(group): for block in group.block_set: blocks.append(block) if group.parent_group is not None: get_needed_blocks(group.parent_group) blocks = [] get_needed_blocks(group) return blocks […]

Django DoesNotExist

我试图find“DoesNotExist错误”的问题,我试图find正确的方式来pipe理无答案的结果,但是我继续在“DoesNotExist”或“对象没有属性DoestNotExists”的问题 from django.http import HttpResponse from django.contrib.sites.models import Site from django.utils import simplejson from vehicles.models import * from gpstracking.models import * def request_statuses(request): data = [] vehicles = Vehicle.objects.filter() Vehicle.vehicledevice_ for vehicle in vehicles: try: vehicledevice = vehicle.vehicledevice_set.get(is_joined__exact = True) imei = vehicledevice.device.imei try: lastposition = vehicledevice.device.devicetrack_set.latest('date_time_process') altitude = lastposition.altitude latitude = lastposition.latitude longitude = […]