小编arr*_*rt_的帖子

Django:跟踪模型中的字段是否发生更改

我有一个模型:

class Object(Object1):
    name = models.CharField(max_length=255, blank=True)
    description = models.TextField(blank=True)
    date_updated = models.DateTimeField(blank=True, null=True)
Run Code Online (Sandbox Code Playgroud)

我想跟踪是否有任何内容插入到 date_updated 字段中,然后在另一个模型中创建另一个对象,而不覆盖 save 方法。

例如:

if date_updated:
    MyModel.objects.create(type="D", user=request.user)
Run Code Online (Sandbox Code Playgroud)

虽然我已经尝试过这个,但仍然没有成功。

python django django-models

3
推荐指数
1
解决办法
6255
查看次数

Django 在 Queryset 中获取外键对象

我有3个型号:

class Event(models.Model):
    cur_datetime = models.DateTimeField(default=datetime.datetime(1970, 1, 1, 0, 0, 0, 0, pytz.UTC), blank=True, null=True)
    week_no = models.IntegerField()
    day_no = models.IntegerField()

class SubEvent(models.Model):
    event = models.ForeignKey(Event, on_delete=models.CASCADE)
    version = models.IntegerField()

class SubSubEvent(models.Model):
    sub_event = models.ForeignKey(SubEvent, on_delete=models.CASCADE)
    length = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

我想从SubSubEvent模型中获取一个查询集,其中包含所有外键作为一个对象。我现在拥有的是:

querySet = SubSubEvent.objects.filter(sub_event__event__cur_datetime__range=[from_date, to_date])
Run Code Online (Sandbox Code Playgroud)

这将返回一个查询集,并使用 for 循环来获取__dict__每个对象,我得到如下结果:

{'event_id': 1, '_state': <django.db.models.base.ModelState object at 0x7fd7d9cefeb8>, 'id': 10, 'length': '1'}
Run Code Online (Sandbox Code Playgroud)

这只是我想要实现的查询的一部分。我真正想要的是所有字段,而event_id不仅仅是id数字。换句话说,来自 plus 的所有字段(包括数据)都EventSubEvent一个SubSubEvent查询集中。该查询集应包含带有 cur_datetime、week_no、day_no、version 和 length 的对象。

django django-models django-queryset python-3.x

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

Django admin,将操作显示为按钮

在 Django admin 中,有一个用于操作的下拉列表。

我想要实现的是摆脱下拉列表和“开始”按钮,而是将我的操作显示为按钮。

怎么做到呢?提前致谢。

django django-templates django-admin python-3.x

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