2010-09-18 8 views
5

Hey, neu nach Django und brauche Hilfe, wenn ich mein Modell der Admin-Oberfläche in Django hinzufügen erscheint es gut, aber wenn ich versuche, einen Eintrag in der Datenbank hinzufügen oder löschen:TypeError in Django mit Python 2.7

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

ich eine google-Suche durchgeführt und das hinzugefügt:

def __str__(self): 
    return "" 

Zum Ende meiner User-Modell Klasse, aber ohne Erfolg. Nicht sicher, ob ich etwas in mein admin.py eingeben muss? Ich habe auch keine "add" -Methode in meiner Benutzerklasse, es gibt auch nichts anderes als die obige Methode zurück.

Danke für jede Hilfe!

Die Klasse User:

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

Und die einfache admin.py in/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

Können Sie uns mehr von Ihrem Code zeigen? Haben Sie die Benutzerklasse überhaupt angepasst? –

+0

Ich bin nicht vertraut mit Admin-Website, aber wenn Sie ändern, Ihre \ __ str__ zu \ __ unicode__ ist immer noch das Gleiche? – juanefren

+0

Immer noch das gleiche, denke, es hat etwas mit der Admin-Oberfläche zu tun, anstatt meinen Code, nicht sicher, tho. Und postete mehr Code Ned. – pyBite42

Antwort

1

In Ihrer MEDIA_ROOT Definition, Ihre ersetzen ändern haben Sie eine rohe Zeichenkette, da Sie sonst einen einzelnen Backslash ersetzen anstatt die beiden, die Sie meinen.

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