Skip to main content
 首页 » 编程设计

python之如何创建个性化的 Django 管理模型

2024年09月03日35tintown

我正在编写一个 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。这种方式行不通。

看看它是如何实现的:http://docs.djangoproject.com/en/1.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_for_manytomany