0

我有一个以 DateTime 作为主键定义的类

class GrowEntry(models.Model):
    dateTime = models.DateTimeField(primary_key=True, unique=True, null=False, blank=False)
    airTemperature = models.FloatField(null=True, blank=True)
    airHumidity = models.FloatField(null=True, blank=True)

    def __str__(self):
        return "time {datetime}T:{airtemp}H:{airHumidity}".format(datetime = self.dateTime, airtemp = self.airTemperature, airHumidity = self.airHumidity)
    
    def get_absolute_url(self):
        return reverse('growentry_edit', kwargs={'pk': self.pk})

    def get_formatted_id(self):
        return self.dateTime.strftime("%Y-%m-%d %H:%M:%S")

它可以工作,但在管理员中我注意到我无法删除条目,因为默认方法(或操作,无论它是什么)尝试使用 DateTime 字段作为长日期格式的参数。为了解决这个问题,我以这种方式覆盖了管理员

@admin.action(description='Delete entry')
def delete_model(modeladmin, request, queryset):
    if not modeladmin.has_delete_permission(request):
        raise PermissionDenied
    for obj in queryset:
        obj.delete()

class GrowEntryAdmin(admin.ModelAdmin):
    list_display = ['dateTime', 'airTemperature', 'airHumidity']
    ordering = ['dateTime']
    actions = [delete_model]

但现在我在列表中有两个操作(默认一个和我的自定义)。我想我错过了一些东西。对此有一些指导方针吗?如何摆脱默认操作?

4

0 回答 0