2017-04-11 12 views
0

admin.pyどのように移行Djangoでエラーを解決するには?

from django.contrib import admin 
from main.models import * 
from django.db.models import TextField 
from file_picker.wymeditor.widgets import WYMeditorWidget 

@admin.register(MainUser) 
class MainUserAdmin(admin.ModelAdmin): 
    list_display = ('username', 'first_name', 'second_name') 

class BlogAdmin(admin.ModelAdmin): 
    prepopulated_fields = {'slug':('title',)} 
    list_display = ('title', 'time') 
    formfield_overrides = {TextField: { 'widget': WYMeditorWidget({}) } } 
    class Media: 
     js = ('http://cdn.jquerytools.org/1.2.5/full/jquery.tools.min.js',) 

admin.site.register(Blog, BlogAdmin) 

class PostLecture(admin.ModelAdmin): 
    list_display = ('title')  

admin.site.register(PostLecture) 

models.py

class PostLecture(models.Model): 
    title = models.CharField(max_length=200) 
    pdf = models.FileField() 
    time = models.DateTimeField(auto_now_add = True) 


    def __unicode__(self): 
     return self.title 

    def __str__(self): 
     return self.title 

    def get_absolute_url(self): 
     return reverse("posts:detail", kwargs={"id": self.id}) 

    class Meta: 
     ordering = ['-time'] 

私はコマンドで移行を行いました(makemigrationと移行します)。管理パネルでサーバーを実行した後、移行はありません。と私はこのようなエラーがあります:

File "./manage.py", line 22, in <module> 
    execute_from_command_line(sys.argv) 
    File "/Users/nursultan/projects/diplomproject/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line 
    utility.execute() 
    File "/Users/nursultan/projects/diplomproject/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 341, in execute 
    django.setup() 
    File "/Users/nursultan/projects/diplomproject/env/lib/python2.7/site-packages/django/__init__.py", line 27, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "/Users/nursultan/projects/diplomproject/env/lib/python2.7/site-packages/django/apps/registry.py", line 115, in populate 
    app_config.ready() 
    File "/Users/nursultan/projects/diplomproject/env/lib/python2.7/site-packages/django/contrib/admin/apps.py", line 23, in ready 
    self.module.autodiscover() 
    File "/Users/nursultan/projects/diplomproject/env/lib/python2.7/site-packages/django/contrib/admin/__init__.py", line 26, in autodiscover 
    autodiscover_modules('admin', register_to=site) 
    File "/Users/nursultan/projects/diplomproject/env/lib/python2.7/site-packages/django/utils/module_loading.py", line 50, in autodiscover_modules 
    import_module('%s.%s' % (app_config.name, module_to_search)) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
    File "/Users/nursultan/projects/diplomproject/diplomproject/main/admin.py", line 22, in <module> 
    admin.site.register(PostLecture) 
    File "/Users/nursultan/projects/diplomproject/env/lib/python2.7/site-packages/django/contrib/admin/sites.py", line 86, in register 
    for model in model_or_iterable: 
TypeError: 'MediaDefiningClass' object is not iterable 

どのように解決するには?エラーはどこですか?

答えて

1

Blogと同じように、PostLectureモデルには何も登録されていません。

に変更してください。また

class PostLectureAdmin(admin.ModelAdmin): 
    list_display = ('title',) 

admin.site.register(PostLecture, PostLectureAdmin) 

、追記として、PostLectureモデルの内側に、__unicode__または__str__のいずれかを削除してください。 Python 2を使用している場合は__unicode__を使用し、Python 3を使用している場合は__str__を使用してください。

+0

あなたが書いたように変更されました。 SystemCheckError:システムチェックで問題が見つかりました: エラー: :(admin.E107) 'list_display'の値は、リストまたはタプルでなければなりません。 –

+0

'list_display'の中にカンマがありません。 'list_display'はタプルまたはリストでなければなりません。 –

+0

それは動作します、ありがとう –

関連する問題