Django fields çoklu seçim

Merhabalar;
models.py

from django.db import models
from django.contrib.auth.models import AbstractUser

class CustomUser(AbstractUser):
    username = models.CharField(unique=True, max_length=40)
    email = models.EmailField(unique=True)
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=35)
    image = models.ImageField()
    password = models.CharField()
    school_class = models.CharField(choices=(("1. sınıf", "2. sınıf", "3. sınıf", "4. sınıf", "5. sınıf", "6. sınıf", "7. sınıf", "8. sınıf", "9.sınıf", "10. sınıf", "11. sınıf", "12. sınıf")), max_length=1)
    contact_info = models.TextField()

Hata

Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    main()
  File "manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/core/management/__init__.py", line 357, in execute
    django.setup()
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/apps/registry.py", line 122, in populate
    app_config.ready()
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/contrib/admin/apps.py", line 24, in ready
    self.module.autodiscover()
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/contrib/admin/__init__.py", line 26, in autodiscover
    autodiscover_modules('admin', register_to=site)
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/utils/module_loading.py", line 47, in autodiscover_modules
    import_module('%s.%s' % (app_config.name, module_to_search))
  File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/ramazan/Django_Projects/sharenote/accounts/admin.py", line 5, in <module>
    from .forms import CustomUserCreationForm, CustomUserChangeForm
  File "/home/ramazan/Django_Projects/sharenote/accounts/forms.py", line 5, in <module>
    class CustomUserCreationForm(UserCreationForm):
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/forms/models.py", line 256, in __new__
    apply_limit_choices_to=False,
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/forms/models.py", line 172, in fields_for_model
    formfield = f.formfield(**kwargs)
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/db/models/fields/__init__.py", line 1093, in formfield
    return super().formfield(**defaults)
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/db/models/fields/__init__.py", line 872, in formfield
    defaults['choices'] = self.get_choices(include_blank=include_blank)
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/db/models/fields/__init__.py", line 818, in get_choices
    blank_defined = any(choice in ('', None) for choice, _ in self.flatchoices)
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/db/models/fields/__init__.py", line 844, in _get_flatchoices
    for choice, value in self.choices:
ValueError: too many values to unpack (expected 2)

Amacım çoklu seçim imkanı sunmaktı. Nerede hata yaptım?

Şu şekilde yapmanız gerekiyor.

https://docs.djangoproject.com/en/2.2/ref/models/fields/#choices

1 Beğeni

Bu modülle yapmaya çalıştım ama şu hatayı aldım. Hiçbir şey anlamadım:

Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    main()
  File "manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/core/management/base.py", line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/core/management/base.py", line 364, in execute
    output = self.handle(*args, **options)
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/core/management/base.py", line 83, in wrapped
    res = handle_func(*args, **kwargs)
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/core/management/commands/makemigrations.py", line 101, in handle
    loader.check_consistent_history(connection)
  File "/home/ramazan/Django_Projects/sharenote/venv/lib/python3.6/site-packages/Django-2.2.1-py3.6.egg/django/db/migrations/loader.py", line 299, in check_consistent_history
    connection.alias,
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency accounts.0001_initial on database 'default'.

python3 manage.py makemigrations ve python3 manage.py migrate komutlarını çalıştırdım. Kodlarım da şöyle:

from django.db import models
from django.contrib.auth.models import AbstractUser
from multiselectfield import MultiSelectField

classes = tuple(enumerate((f"{i}. Sınıf" for i in range(1, 13)), 1))

class CustomUser(AbstractUser):
    username = models.CharField(unique=True, max_length=40)
    email = models.EmailField(unique=True)
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=35)
    image = models.ImageField()
    password = models.CharField(max_length=40)
    school_class = MultiSelectField(max_choices=1, choices=classes)
    contact_info = models.TextField()

Ekleme: O modülü kullanmayınca da aynı hatayı alıyorum.

Bu sayfada bahsedildiğine göre veritabanı dosyasını yeniden oluşturmak gerekiyormuş. Silmek gerekiyormuş yani.

1 Beğeni