2016-12-16 9 views
5

ich die folgende HeaderdateiArrayField fehlt 1 Positions Argument erforderlich

from django.contrib.postgres.fields import ArrayField 

verwendet, um die folgenden im

Modell importiert haben
question_array = ArrayField(models.IntegerField, blank=True,) 

ich folgende Fehler

Traceback (most recent call last) 
    File "C:\Program Files (x86)\Python\Python35-32\lib\site-packages\django-1.10.4-py3.5.egg\django\__init__.py", line 27, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "C:\Program Files (x86)\Python\Python35-32\lib\site-packages\django-1.10.4-py3.5.egg\django\apps\registry.py", line 108, in populate 
    app_config.import_models(all_models) 
    File "C:\Program Files (x86)\Python\Python35-32\lib\site-packages\django-1.10.4-py3.5.egg\django\apps\config.py", line 199, in import_models 
    self.models_module = import_module(models_module_name) 
    File "C:\Program Files (x86)\Python\Python35-32\lib\importlib\__init__.py", line 126, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 986, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 969, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 673, in _load_unlocked 
    File "<frozen importlib._bootstrap_external>", line 665, in exec_module 
    File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed 
    File "C:\Users\DELL\Desktop\cstrom\comp\models.py", line 24, in <module> 
    class User(models.Model): 
    File "C:\Program Files (x86)\Python\Python35-32\lib\site-packages\django-1.10.4-py3.5.egg\django\db\models\base.py", line 157, in __new__ 
    new_class.add_to_class(obj_name, obj) 
    File "C:\Program Files (x86)\Python\Python35-32\lib\site-packages\django-1.10.4-py3.5.egg\django\db\models\base.py", line 316, in add_to_class 
    value.contribute_to_class(cls, name) 
    File "C:\Program Files (x86)\Python\Python35-32\lib\site-packages\django-1.10.4-py3.5.egg\django\db\models\fields\__init__.py", line 689, in contribute_to_class 
    self.set_attributes_from_name(name) 
    File "C:\Program Files (x86)\Python\Python35-32\lib\site-packages\django-1.10.4-py3.5.egg\django\contrib\postgres\fields\array.py", line 75, in set_attributes_from_name 
    self.base_field.set_attributes_from_name(name) 
TypeError: set_attributes_from_name() missing 1 required positional argument: 'name' 
+1

Wenn Sie ein Anfänger sind, halten Sie sich von Arrayfield fern. Bleiben Sie beim richtigen Datenbankdesign. http://stackoverflow.com/questions/3653462/is-storing-a-limited-list-in-a-database-column-really-that-bad/3653574 – e4c5

+0

^Sehr guter Punkt, während die Antworten versuchen zu adressieren den Fehler beheben, den Sie bekommen. Der Variablenname, den Sie ihm geben, legt nahe, dass dies wahrscheinlich eine "ForeignKey" - oder eine andere Beziehung sein sollte – Sayse

Antwort

7

bekommen Per die docs

Sie müssen noch das Feld innerhalb des Array-Feld vollständig definieren

question_array = ArrayField(models.IntegerField(null=True, blank=True), blank=True,) 
2

models.IntegerField ist eine Funktion, nicht eine Eigenschaft, so werden Sie aufgefordert es wie eine Funktion aufzurufen. () am Ende

question_array = ArrayField(models.IntegerField(blank=True), blank=True,) 

Lesen Sie mehr darüber here.

Verwandte Themen