2010-09-18 24 views
5

Hey, Django'ya yeni bir model ekliyorum ve desteğe ihtiyaç duyduğumda, modelimi Django'daki yönetici arayüzüne eklediğimde iyi görünüyor, ancak veritabanına bir giriş eklemeye veya silmeye çalıştığımda şunu elde ederim:Python ile Django'da TypeError 2.7

TypeError at /admin/Users/user/add/  
    coercing to Unicode: need string or buffer, tuple found 

Ben bir google arama yapıp ekledi:

def __str__(self): 
    return "" 

benim Kullanıcı modeli sınıfının amaçla ancak başarılı. Admin.py sayfama bir şey girmem gerekiyor mu? Kullanıcı sınıfımda "eklenti" yöntemim yok, ayrıca yukarıdaki yöntemden başka bir şey de vermiyor.

Yardımlarınız için teşekkürler!

Kullanıcı Sınıfı:

class User(models.Model): 
GENDER_CHOICES = (
     ('M', 'Male'), 
     ('F', 'Female'), 
    ) 

username = models.CharField(max_length=30) 
email = models.EmailField() 
password = models.CharField(max_length=30) 

birth_date = models.DateField() 
description = models.CharField(max_length=200) 
gender = models.CharField(max_length = 1, choices = GENDER_CHOICES, default = "M") 
image = models.ImageField(upload_to="media/photos/") 
signupIP = models.IPAddressField() 
privateOrPublic = models.BooleanField(default=1) 

def __str__(self): 
    return "" 

Ve In/Kullanıcılar basit admin.py/

from Users.models import User 
from django.contrib import admin 

admin.site.register(User) 

traceback:

sizin MEDIA_ROOT tanımda
Environment: 

Request Method: POST 
Request URL: http://127.0.0.1/admin/Users/user/add/ 
Django Version: 1.2.3 
Python Version: 2.7.0 
Installed Applications: 
['django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.admin', 
    'Users'] 
Installed Middleware: 
('django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware') 


Traceback: 
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response 
    100.      response = callback(request, *callback_args, **callback_kwargs) 
File "C:\Python27\lib\site-packages\django\contrib\admin\options.py" in wrapper 
    239.     return self.admin_site.admin_view(view)(*args, **kwargs) 
File "C:\Python27\lib\site-packages\django\utils\decorators.py" in _wrapped_view 
    76.      response = view_func(request, *args, **kwargs) 
File "C:\Python27\lib\site-packages\django\views\decorators\cache.py" in _wrapped_view_func 
    69.   response = view_func(request, *args, **kwargs) 
File "C:\Python27\lib\site-packages\django\contrib\admin\sites.py" in inner 
    190.    return view(request, *args, **kwargs) 
File "C:\Python27\lib\site-packages\django\utils\decorators.py" in _wrapper 
    21.    return decorator(bound_func)(*args, **kwargs) 
File "C:\Python27\lib\site-packages\django\utils\decorators.py" in _wrapped_view 
    76.      response = view_func(request, *args, **kwargs) 
File "C:\Python27\lib\site-packages\django\utils\decorators.py" in bound_func 
    17.     return func(self, *args2, **kwargs2) 
File "C:\Python27\lib\site-packages\django\db\transaction.py" in _commit_on_success 
    299.      res = func(*args, **kw) 
File "C:\Python27\lib\site-packages\django\contrib\admin\options.py" in add_view 
    795.     self.save_model(request, new_object, form, change=False) 
File "C:\Python27\lib\site-packages\django\contrib\admin\options.py" in save_model 
    597.   obj.save() 
File "C:\Python27\lib\site-packages\django\db\models\base.py" in save 
    434.   self.save_base(using=using, force_insert=force_insert, force_update=force_update) 
File "C:\Python27\lib\site-packages\django\db\models\base.py" in save_base 
    517.       for f in meta.local_fields if not isinstance(f, AutoField)] 
File "C:\Python27\lib\site-packages\django\db\models\fields\files.py" in pre_save 
    255.    file.save(file.name, file, save=False) 
File "C:\Python27\lib\site-packages\django\db\models\fields\files.py" in save 
    91.   name = self.field.generate_filename(self.instance, name) 
File "C:\Python27\lib\site-packages\django\db\models\fields\files.py" in generate_filename 
    282.   return os.path.join(self.get_directory_name(), self.get_filename(filename)) 
File "C:\Python27\lib\site-packages\django\db\models\fields\files.py" in get_filename 
    279.   return os.path.normpath(self.storage.get_valid_name(os.path.basename(filename))) 
File "C:\Python27\lib\site-packages\django\utils\functional.py" in __getattr__ 
    276.    self._setup() 
File "C:\Python27\lib\site-packages\django\core\files\storage.py" in _setup 
    242.   self._wrapped = get_storage_class()() 
File "C:\Python27\lib\site-packages\django\core\files\storage.py" in __init__ 
    133.   self.location = os.path.abspath(location) 
File "C:\Python27\lib\ntpath.py" in abspath 
    465.     path = _getfullpathname(path) 

Exception Type: TypeError at /admin/Users/user/add/ 
Exception Value: coercing to Unicode: need string or buffer, tuple found 
+0

Bize kod daha gösterebilir misiniz? Kullanıcı sınıfını hiç özelleştirdiniz mi? –

+0

Yönetici sitesiyle aşina değilim, ancak \ __ str__ \ \ unicode__ \ 'nı değiştirirseniz hala aynı mıdır? – juanefren

+0

Yine aynı, benim koddan ziyade yönetici arayüzü ile ilgili bir şey olduğunu düşünüyorum, emin değilim. Ve daha fazla kod gönderdi Ned. – pyBite42

cevap

1

, senin için değiştir değiştirmek aksi taktirde ham bir dize var, aksi halde sen demek istediğin ikiden ziyade bir tek ters eğik çizgi yerine geçeceksin.

MEDIA_ROOT = os.path.join(os.path.dirname(file), "media").replace(r"\\", "//")