如何修复djangos的decotators错误:包装的类必须子类化ModelAdmin

问题描述 投票:0回答:1

我一直是我的应用程序的API。当我启动servver终端时,结束了以下操作:文件“ /home/user/MyProjects/forest-venv/forest/logginsite/admin.py”,第11行LScharacteristicAdmin(DynamicRawIDMixin)类:_model_admin_wrapper中的第25行,文件“ /home/user/MyProjects/forest-venv/lib/python3.5/site-packages/django/contrib/admin/decorators.py”引发ValueError('Wrapped类必须是ModelAdmin的子类。)ValueError:包装的类必须为ModelAdmin的子类。“我是django的新手。如何解决?

是我项目的依赖部分:

admin.py:

from django.contrib.gis import admin
from .models import *
from dynamic_raw_id.admin import DynamicRawIDMixin

class DefaultGeoAdmin(admin.OSMGeoAdmin):
    search_fields = ['code', 'name']
    display_wkt = True
    save_on_top = True

@admin.register(LScharacteristic)
class LScharacteristicAdmin(DynamicRawIDMixin):
    list_display = ('code', 'codeLS', 'track', 'task','totalarea','explarea','protecttype' )
    dynamic_raw_id_fields = ('codeLS', )
    model = LScharacteristic

models.py:

    from django.db import models
    from django.utils.translation import ugettext_lazy as _
    from renter.models import RefAbstract, Renter
    from django.contrib.gis.db import models

    class Unit(RefAbstract):
        class Meta(RefAbstract.Meta):
            verbose_name = 'nameunit'
            verbose_name_plural = 'namesofunits'

    class ManageType(RefAbstract):
        class Meta(RefAbstract.Meta):
            verbose_name = 'type'
            verbose_name_plural = 'types'

    class CutareaShape(RefAbstract):
        class Meta(RefAbstract.Meta):
            verbose_name = 'cut'
            verbose_name_plural = 'cuts'

    class CutareaType(models.Model):
        name = models.TextField('name', max_length=500)

        def __str__(self):
            return shorten(self.name, width=60)

        class Meta:
            verbose_name = 'cut2'
            verbose_name_plural = 'cuts2'

    class Composition(RefAbstract):
        class Meta(RefAbstract.Meta):
            verbose_name = 'set'
            verbose_name_plural = 'sets'

    class Assortment(RefAbstract):
        class Meta(RefAbstract.Meta):
            verbose_name = 'assort'
            verbose_name_plural = 'assorts'
    class CodeLS(RefAbstract):
        class Meta(RefAbstract.Meta):
            verbose_name = 'area'
            verbose_name_plural = 'areas'

    class LScharacteristic(models.Model):
        code = models.IntegerField( help_text='number')
        codeLS = models.ForeignKey(CodeLS, on_delete=models.DO_NOTHING, verbose_name='id area')           
        task = models.CharField(max_length = 100, help_text ='task')
        totalrea = models.PositiveIntegerField(help_text = 'totarea')
        explarea = models.PositiveIntegerField(help_text = 'explarea')
        protecttype = models.CharField(max_length = 50, help_text = 'protecttype')

class PlannedUsing(models.Model):
        #...some variables

class Spatial(models.Model):
        #...some variables

我不明白为什么django扔了它。该admin.py文件的创建方式与另一个admin.py相似,它可以在应用程序中使用。

python django django-admin
1个回答
0
投票
class LScharacteristicAdmin(admin.ModelAdmin)
© www.soinside.com 2019 - 2024. All rights reserved.