2016-11-20 56 views
0

這是我的models.py代碼。任何人都可以讓我知道這段代碼有什麼問題嗎?如何解決TypeError:__init __()在Django中獲得了一個意外的關鍵字參數'_MAX_LENGTH'

from django.db import models 
    from unittest.util import _MAX_LENGTH 

    class Album(models.Model): 
      artist = models.CharField(_MAX_LENGTH=250) 
      album_title = models.CharField(_MAX_LENGTH=500) 
      genre = models.CharField(_MAX_LENGTH=100) 
      album_logo = models.CharField(_MAX_LENGTH=1000) 

    class Song(models.Model): 
     album = models.ForeignKey(Album, on_delete = models.CASCADE) 
     file_type = models.CharField(_MAX_LENGTH=10) 
     song_title = models.CharField(_MAX_LENGTH=250) 

在運行命令python manage.py遷移的音樂,我收到此錯誤

Traceback (most recent call last): 
    File "/home/sunil/workspace/DjangoApp1/manage.py", line 11, in <module> 
    execute_from_command_line(sys.argv) 
    File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 354, in execute_from_command_line 
    utility.execute() 
    File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 328, in execute 
    django.setup() 
    File "/usr/lib/python2.7/dist-packages/django/__init__.py", line 18, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "/usr/lib/python2.7/dist-packages/django/apps/registry.py", line 108, in populate 
    app_config.import_models(all_models) 
    File "/usr/lib/python2.7/dist-packages/django/apps/config.py", line 198, in import_models 
    self.models_module = import_module(models_module_name) 
    File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
    File "/home/sunil/workspace/DjangoApp1/music/models.py", line 5, in <module> 
    class Album(models.Model): 
    File "/home/sunil/workspace/DjangoApp1/music/models.py", line 6, in Album 
    artist = models.CharField(_MAX_LENGTH=250) 
    File "/usr/lib/python2.7/dist-packages/django/db/models/fields/__init__.py", line 1081, in __init__ 
    super(CharField, self).__init__(*args, **kwargs) 
TypeError: __init__() got an unexpected keyword argument '_MAX_LENGTH' 

任何人都可以讓我知道如何解決這個問題?

回答

2

max_length(字段的最大長度)應該是小寫字母,不要帶前導下劃線(_)。

class Album(models.Model): 
    artist = models.CharField(max_length=250) 
    album_title = models.CharField(max_length=500) 
    genre = models.CharField(max_length=100) 
    album_logo = models.CharField(max_length=1000) 

class Song(models.Model): 
    album = models.ForeignKey(Album, on_delete=models.CASCADE) 
    file_type = models.CharField(max_length=10) 
    song_title = models.CharField(max_length=250) 

_MAX_LENGTHunittest.util不是django的模型,但對單元測試的內部使用,以限制要打印的名稱的長度。

+1

@MoinuddinQuadri,謝謝指點。我相應地修復了它。 – falsetru

+0

感謝Falsetru,我得到了我的錯誤,現在它正在工作:) –