Как создать персонализированную модель администратора Django? - PullRequest
2 голосов
/ 31 декабря 2010

Я пишу приложение Django, и мне нужно создать персонализированную модель администратора, чтобы отображать только определенные элементы в интерфейсе администрирования при создании нового объекта.

Я написал этот код для администратора.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' не повторяется

в этой строке.

Я искал в интернете и документации эту ошибку, но не нашел ничего релевантного в моей конкретной проблеме.Я думаю, что решение будет очень простым, но я не вижу его.Кто-нибудь может мне помочь?

Спасибо!

1 Ответ

3 голосов
/ 31 декабря 2010

это неверно:

class SimAdmin(admin.ModelAdmin):
    phone = forms.ModelChoiceField(queryset=Item.objects.filter(name='phone'))

вы пытаетесь прикрепить формы. Поле к admin.ModelAdmin. Это не работает таким образом.

Посмотрите, как это можно реализовать: http://docs.djangoproject.com/en/1.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_for_manytomany

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...