带有扩展的多个 Django 管理参数
Multiple Django Admin Arguments with Extensions
有没有办法在admin.py里面的admin.site.register()
中使用多个Django扩展?我正在使用 "simple-history" 和 "import-export" 扩展,但我只能在 admin.site.register()
.
中使用其中之一
示例:我有一个名为 "Cars" 的模型,它使用 "simple-history" 扩展名,所以我需要 admin.site.register(Cars, SimpleHistoryAdmin)
,正如他们的文档所说的那样。我也想对同一个 "Cars" 模型使用 import/export 扩展,但是 admin.site.register()
不需要多个参数来让我添加它。
models.py
class Cars(models.Model):
Year = models.CharField(max_length=30)
Make = models.CharField(max_length=30)
Model = models.CharField(max_length=30)
history = HistoricalRecords()
class Meta:
verbose_name_plural = "Car Table"
def __str__(self):
return self.Make
admin.py
class CarResource(resources.ModelResource):
class Meta:
model = Cars
fields = ('id','Year', 'Make', 'Model',)
class CarAdmin(ImportExportModelAdmin):
resource_class = CarResource
pass
#I want to use the import/export extension (code above), along with simple-history
admin.site.register(Cars, CarAdmin)
admin.site.register(Cars, SimpleHistoryAdmin)
我试过使用代理和内联,但代理生成了一个我不想要的新模型,当使用内联时,我收到一条错误消息,说它需要外键,但我没有尝试从不同的模型中获取模型对象。将它们命名为相同的模型不起作用,因为该模型已经注册。非常感谢任何帮助!
在python中,class可以有多个parent。只需一次继承 2 parents。但是ImportExportModelAdmin
和SimpleHistoryAdmin
都是继承自ModelAdmin,这样不好。还有ImportExportMixin
,我们可以用它代替ImportExportModelAdmin
,这样就会只有一个引用ModelAdmin。
class CarResource(resources.ModelResource):
class Meta:
model = Cars
fields = ('id','Year', 'Make', 'Model',)
class CarAdmin(ImportExportMixin, SimpleHistoryAdmin):
resource_class = CarResource
pass
#I want to use the import/export extension (code above), along with simple-history
admin.site.register(Cars, CarAdmin)
有没有办法在admin.py里面的admin.site.register()
中使用多个Django扩展?我正在使用 "simple-history" 和 "import-export" 扩展,但我只能在 admin.site.register()
.
示例:我有一个名为 "Cars" 的模型,它使用 "simple-history" 扩展名,所以我需要 admin.site.register(Cars, SimpleHistoryAdmin)
,正如他们的文档所说的那样。我也想对同一个 "Cars" 模型使用 import/export 扩展,但是 admin.site.register()
不需要多个参数来让我添加它。
models.py
class Cars(models.Model):
Year = models.CharField(max_length=30)
Make = models.CharField(max_length=30)
Model = models.CharField(max_length=30)
history = HistoricalRecords()
class Meta:
verbose_name_plural = "Car Table"
def __str__(self):
return self.Make
admin.py
class CarResource(resources.ModelResource):
class Meta:
model = Cars
fields = ('id','Year', 'Make', 'Model',)
class CarAdmin(ImportExportModelAdmin):
resource_class = CarResource
pass
#I want to use the import/export extension (code above), along with simple-history
admin.site.register(Cars, CarAdmin)
admin.site.register(Cars, SimpleHistoryAdmin)
我试过使用代理和内联,但代理生成了一个我不想要的新模型,当使用内联时,我收到一条错误消息,说它需要外键,但我没有尝试从不同的模型中获取模型对象。将它们命名为相同的模型不起作用,因为该模型已经注册。非常感谢任何帮助!
在python中,class可以有多个parent。只需一次继承 2 parents。但是ImportExportModelAdmin
和SimpleHistoryAdmin
都是继承自ModelAdmin,这样不好。还有ImportExportMixin
,我们可以用它代替ImportExportModelAdmin
,这样就会只有一个引用ModelAdmin。
class CarResource(resources.ModelResource):
class Meta:
model = Cars
fields = ('id','Year', 'Make', 'Model',)
class CarAdmin(ImportExportMixin, SimpleHistoryAdmin):
resource_class = CarResource
pass
#I want to use the import/export extension (code above), along with simple-history
admin.site.register(Cars, CarAdmin)