在管理页面中更改一个到一个字段时,不会自动选择创建的对象

时间:2015-11-02 08:26:45

标签: python django

我是Django的新手,我遇到了一个奇怪的错误。

这是model.py:

class ProcessTime(TaggedModel):
    first_time = models.OneToOneField('Duration', null=True, blank=True, related_name='first_time_duration',
        on_delete=models.SET_NULL)  
    nth_time = models.OneToOneField('Duration', null=True, blank=True, related_name='nth_time_duration',
        on_delete=models.SET_NULL)

在admin.py中:

class ProcessTimeAdmin(AbstractModelAdmin):
    list_display = ('active', '__str__', 'first_time')
    list_display_links = ('__str__',)
    fieldsets = (
        (None, {'fields': 'first_time', 'nth_time',)}),
        ('More', MORE_FIELDS),)

问题是当我想通过管理页面更改processTime first_time字段时,当我点击某个processTime对象时,会弹出一个包含此对象详细信息的弹出窗口。 (根据现场集) first_time显示为下拉列表。

弹出窗口的打印屏幕:

image

问题是当我想要更改first_time并创建一个新的'Duration'时,新值不是自动选择的,而是添加到下拉列表中,然后我需要从未排序的列表中搜索它任何事情。

此外,我会指出它几周前就已经运行了,而且代码没有任何改变。

我想解决这个问题,这样当我创建一个新的'持续时间'时,它会在下拉菜单中显示为已选中,我不需要搜索它。

我可以按照创作时间对这个列表进行排序吗? 或者也许更改管理员界面以便我只能创建新的持续时间而不会有下拉列表? (这是多余的,因为first_time是OneToOne字段)

谢谢, 吉尔

1 个答案:

答案 0 :(得分:0)

好的,我发现了问题。显然,我在数据库中有超过10,000个孤立的持续时间对象与任何processTime对象无关。浏览器具有可在下拉列表中看到的最大数量的对象 - 10,000,因此无法将新持续时间连接到列表顶部。