我正在编写一个 Django 应用程序,我需要创建一个个性化的管理模型,以便在创建新对象时仅在管理界面中显示确定的项目。
我为 admin.py 编写了这段代码:
from django import forms
from myapp.models import *
from django.contrib import admin
class SimAdmin(admin.ModelAdmin):
phone = forms.ModelChoiceField(queryset=Item.objects.filter(name='phone'))
fields = ('phone', 'num_phone', 'pin', 'puk')
admin.site.register(Item)
admin.site.register(Sim, SimAdmin)
...
问题是当我登录管理站点时,我的 SimAdmin 没有出现。 Django 不会在这段代码中给我任何错误,但如果我只写
...
admin.site.register(SimAdmin)
...
它给了我一个
TypeError: 'MediaDefiningClass' object is not iterable
在这一行。
我在网络和文档中搜索了此错误,但没有找到与我的具体问题相关的任何内容。我认为解决方案会很简单,但我看不到。有人可以帮助我吗?
谢谢!
最佳答案
这是不正确的:
class SimAdmin(admin.ModelAdmin):
phone = forms.ModelChoiceField(queryset=Item.objects.filter(name='phone'))
您正在尝试将 forms.Field 附加到 admin.ModelAdmin。这是行不通的。
关于python - 如何创建个性化的 Django 管理模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4569101/