2010-09-18 36 views
5

Hey, mới để Django và cần hỗ trợ, khi tôi thêm mô hình của tôi vào giao diện quản trị ở Django nó xuất hiện tốt, nhưng khi tôi cố gắng thêm hoặc xóa một mục trong cơ sở dữ liệu tôi nhận được:TypeError ở Django với python 2.7

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

tôi thực hiện một tìm kiếm google và nói thêm:

def __str__(self): 
    return "" 

Để kết thúc lớp mô hình tài khoản của tôi nhưng không thành công. Không chắc chắn nếu tôi phải nhập một cái gì đó vào admin.py của tôi? Tôi cũng không có phương thức "add" trong lớp User của mình, nó cũng trả về không có gì khác ngoài phương thức ở trên.

Cảm ơn bạn đã trợ giúp!

Những thành viên Class:

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 "" 

Và admin.py đơn giản trong/Users/

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

admin.site.register(User) 

Traceback:

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

Bạn có thể hiển thị thêm mã cho chúng tôi không? Bạn đã tùy chỉnh lớp người dùng chưa? –

+0

Tôi không quen thuộc với trang quản trị, nhưng nếu bạn thay đổi \ __ str__ thành \ __ unicode__ vẫn như cũ? – juanefren

+0

Vẫn như cũ, nghĩ rằng nó có cái gì để làm với giao diện quản trị chứ không phải là mã của tôi, không chắc chắn tho. Và đăng thêm mã Ned. – pyBite42

Trả lời

1

Trong định nghĩa MEDIA_ROOT của bạn, thay đổi thay của bạn để có một chuỗi thô, vì nếu không bạn sẽ thay thế một dấu gạch chéo ngược đơn chữ chứ không phải là hai chữ cái bạn muốn nói.

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