2016-12-08 2 views
-2
class Movie(models.Model): 
    movie_id = models.BigAutoField(primary_key=True) 
    movie_name = models.CharField(max_length=128) 
    movie_lang = models.CharField(max_length=36) 
    director = models.CharField(max_length=72) 
    producer = models.CharField(max_length=72) 
    production_house = models.CharField(max_length=128) 
    lead_actor = models.CharField(max_length=72) 
    lead_actress = models.CharField(max_length=72) 
    music_director = models.CharField(max_length=72) 
    art_director = models.CharField(max_length=72) 
    stunts = models.CharField(max_length=72) 
    cinematography = models.CharField(max_length=72) 
    costume_design = models.CharField(max_length=72) 
    hair_stylist = models.CharField(max_length=72) 

    def __str__(self): 
     return self.movie_name 

class Cover(models.Model): 
    cover_id = models.BigAutoField(primary_key=True) 
    cover_path = models.CharField(max_length=512) 
    movie = models.ForeignKey('Movie',on_delete=models.CASCADE) 

    def __str__(self): 
     return self.cover_id 

    def unicode(self): 
     return unicode(self.cover_path) 




#urls.py 
from django.conf.urls import url 

from . import views 

urlpatterns = [ 
    url(r'^(?P<question_id>[0-9]+)/$',views.movie,name='movie'), 
    url(r'^vedio/',views.vedio,name='vedio'), 
    url(r'^image/',views.image,name='image'), 
    url(r'^$',views.index,name = 'index'), 
] 

#views.py 

from django.shortcuts import render 

# Create your views here. 
from django.http import HttpResponse 

def index(request): 
    return HttpResponse("Hello, world. You're at the movie station.") 

def movie(request,question_id): 
    return HttpResponse("Welcome to movies page") 

def vedio(request): 
    return HttpResponse("Welcome to vedios page") 

def image(request): 
    return HttpResponse("Welcome to images page") 

Окружающая среда:TypeError: принуждать к Unicode: нужно строка или буфер, давно нашли

Метод запроса: POST URL запроса: http://localhost:8000/admin/movieaware/cover/add/

Джанго Версия: 1.10.3 Python Версия: 2,7. 12 Установленные приложения:

['movieaware.apps.MovieawareConfig', 
'django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles'] 
Installed Middleware: 
['django.middleware.security.SecurityMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware'] 

Traceback:

File "/home/kartheek/Applications/anaconda2/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 39. response = get_response(request)

File "/home/kartheek/Applications/anaconda2/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request)

File "/home/kartheek/Applications/anaconda2/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/home/kartheek/Applications/anaconda2/lib/python2.7/site-packages/django/contrib/admin/options.py" in wrapper 544. return self.admin_site.admin_view(view)(*args, **kwargs)

File "/home/kartheek/Applications/anaconda2/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view 149. response = view_func(request, *args, **kwargs)

File "/home/kartheek/Applications/anaconda2/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func 57. response = view_func(request, *args, **kwargs)

File "/home/kartheek/Applications/anaconda2/lib/python2.7/site-packages/django/contrib/admin/sites.py" in inner 211. return view(request, *args, **kwargs)

File "/home/kartheek/Applications/anaconda2/lib/python2.7/site-packages/django/contrib/admin/options.py" in add_view 1509. return self.changeform_view(request, None, form_url, extra_context)

File "/home/kartheek/Applications/anaconda2/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapper 67. return bound_func(*args, **kwargs)

File "/home/kartheek/Applications/anaconda2/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view 149. response = view_func(request, *args, **kwargs)

File "/home/kartheek/Applications/anaconda2/lib/python2.7/site-packages/django/utils/decorators.py" in bound_func 63. return func.get(self, type(self))(*args2, **kwargs2)

File "/home/kartheek/Applications/anaconda2/lib/python2.7/site-packages/django/utils/decorators.py" in inner 185. return func(*args, **kwargs)

File "/home/kartheek/Applications/anaconda2/lib/python2.7/site-packages/django/contrib/admin/options.py" in changeform_view 1453. self.log_addition(request, new_object, change_message)

File "/home/kartheek/Applications/anaconda2/lib/python2.7/site-packages/django/contrib/admin/options.py" in log_addition 719. object_repr=force_text(object),

File "/home/kartheek/Applications/anaconda2/lib/python2.7/site-packages/django/utils/encoding.py" in force_text 78. s = six.text_type(s)

Exception Type: TypeError at /admin/movieaware/cover/add/ Exception Value: coercing to Unicode: need string or buffer, long found

Я пробовал большинство предлагаемых решений, но ничего не работает. Мне не удалось разобраться с проблемой

+0

Можете ли вы показать свое мнение и конфигурацию своего URL для/movieaware/cover/add /? – ettanany

+0

обновлен с представлением и адресом @ettanany – user6924051

ответ

0

Возможно, это пустая?

Попробуйте это:

 return unicode(self.cover_path) or u'' 

ошибка также может произойти, если вы пытаетесь передать объект вместо строки через «Юникод».

Мы не можем проверить ваш код, но проверить тип (self.cover_path) и убедиться, что это строка, иначе конвертируйте ее вручную, чтобы убедиться.

0
def __str__(self): 
    return self.cover_id 

здесь я возвращал идентификатор типа Long для функции строки. Он должен возвращать строку, поэтому она выдает ошибку.

+0

Вы можете использовать 'return u '% s"% (self.cover_id if self.cover_id else "") ' или ' return u "{0}". Format (self. cover_id if self.cover_id else "") ' –