Django 1.5'ten yeni Configurable user model'u kullanma (1, 5, 0, 'beta', 2) gerekli bir alanın yabancı bir anahtar ayarlamaya çalışırken manage.py createsuperuser çalışırken bu hatayı alıyorum: benim kullanıcı modeli için ihtiyaç değerlerle bir fixtures/initial_data.yaml ettik yanaDjango 1.5 yapılandırılabilir kullanıcı modelinde gerekli alan olarak yabancı anahtar diyorsun, diyoruz: AttributeError: 'NoneType' nesnesinin '_state' özniteliği yok
AttributeError: 'NoneType' object has no attribute '_state'
, iş akışı:
- oluştur veritabanı
- python manage.py syncdb
- sorusuna "hayır" cevabını verin Django'nun auth sistemini kurdunuz, yani tanımlı herhangi bir süper kullanıcınız yok demektir. Şimdi bir tane oluşturmak ister misiniz? (Evet/hayır)
- 1 fikstür (ler)
- piton manage.py createsuperuser dan 14.264 nesne (ler) Yüklü
Ben fikstürler alındıktan sonra superuser oluşturmaya çalışırken, bu da öyle Şehir modeli için boş bir veritabanı tablosundan kaynaklanan bir sorun değil. documentation dayalı
Kod alıntı:
models.py
class City(models.Model):
city = models.CharField(max_length=70, help_text="City.")
state = models.CharField(max_length=2, help_text="State.")
class Meta:
ordering = ['city']
def __unicode__(self):
return "%s (%s)" % (self.city, self.state)
class PersonaManager(BaseUserManager):
[...]
def create_superuser(self, email, name, birthplace, password):
"""
Creates and saves a superuser with the given email, date of
birth and password.
"""
user = self.create_user(email,
password=password,
name=name,
birthplace=birthplace,
)
user.is_admin = True
user.save(using=self._db)
return user
class Person(AbstractBaseUser):
email = models.EmailField(
verbose_name='email address',
max_length=255,
unique=True,
db_index=True,
)
name = models.CharField(max_length=60)
birthplace = models.ForeignKey('myapp.City', related_name="person_birthplace")
is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
objects = PersonaManager()
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['name', 'birthplace']
nasıl gerekli bir alan üzerinde benim kullanıcı modeli üzerinde çalışan yabancı anahtar alabilirim? Teşekkür ederim.
Düzenleme: manage.py createsuperuser --traceback
den geri izleme: Bu düzeltmek emin, ama sadece eğlence için
Traceback (most recent call last):
File "/home/asd/Envs/envdjango15/local/lib/python2.7/site-packages/django/core/management/base.py", line 222, in run_from_argv
self.execute(*args, **options.__dict__)
File "/home/asd/Envs/envdjango15/local/lib/python2.7/site-packages/django/core/management/base.py", line 252, in execute
output = self.handle(*args, **options)
File "/home/asd/Envs/envdjango15/local/lib/python2.7/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 112, in handle
user_data[field_name] = field.clean(raw_value, None)
File "/home/asd/Envs/envdjango15/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py", line 211, in clean
self.validate(value, model_instance)
File "/home/asd/Envs/envdjango15/local/lib/python2.7/site-packages/django/db/models/fields/related.py", line 1014, in validate
using = router.db_for_read(model_instance.__class__, instance=model_instance)
File "/home/asd/Envs/envdjango15/local/lib/python2.7/site-packages/django/db/utils.py", line 142, in _route_db
return hints['instance']._state.db or DEFAULT_DB_ALIAS
AttributeError: 'NoneType' object has no attribute '_state'
AttributeError: 'NoneType' object has no attribute '_state'
Komple stacktrace nerede? – borges
Traceback seçeneğiyle createuperuser çalıştırdım: Yukarıdaki sonucu ekledim. – chirale
Ptoject'inizde birden fazla veritabanı kullanıyor musunuz? – OrPo