2017-09-18 2 views
0

私は適切なモデルを持っています。アプリケーションのMacOS上の作業が、Linux上で、私は間違いPythonでの外部キーのシリアル化

を持って、私は管理者からのタスクを追加すると 'NoneType' オブジェクトには、属性 'ID'

は、私は(

のような間違いを取得していません1366年、 "不正な文字列値: '\ XD0 \ xBE \ XD1 \ X80 \ XD0 \ XBF ...' 行1の列 'タイトル' の ")

from rest_framework import serializers 
from users.models import User 
from task.models import Task 


class UserSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = User 
     fields = ('id', 'username', 'first_name', 'last_name', 'user_type', 'balance') 


class TaskSerializer(serializers.ModelSerializer): 
    assignee = serializers.SerializerMethodField() 
    created_by = serializers.SerializerMethodField() 

    class Meta: 
     model = Task 
     fields = ('id', 'title', 'description', 'money', 'assignee', 'created_by') 

    def get_assignee(self, obj): 
     return { 
      'id': obj.assignee.id, 
      'username': obj.assignee.username, 
      'first_name': obj.assignee.first_name, 
      'last_name': obj.assignee.last_name, 
      'user_type': obj.assignee.user_type, 
      'balance': obj.assignee.balance 
     } 

    def get_created_by(self, obj): 
     return { 
      'id': obj.created_by.id, 
      'username': obj.created_by.username, 
      'first_name': obj.created_by.first_name, 
      'last_name': obj.created_by.last_name, 
      'user_type': obj.created_by.user_type, 
      'balance': obj.created_by.balance, 
     } 
+1

エンコードに問題がありますが、問題の内容を正確に把握するのに十分な情報を共有していません。データベーステーブルの文字セットが間違っているようです。挿入しようとしているテキストを 'title'フィールドに、' DESCRIBE task_task'の出力をMySQLで共有します。 – mindcruzer

+0

ロシア語のテキストを入力しようとしましたが、これは "название"のようなものです –

+0

データベースキャラクタセット/照合は 'latin1' /' latin1_swedish_ci'のように設定されている可能性があり、挿入しようとしているバイトをデコードできません。 https://docs.djangoproject.com/en/1.11/ref/unicode/#creating-the-databaseを参照してください。 'utf8'の文字セットと' utf8_unicode_ci'(またはそれに類するもの)の照合が必要です。 – mindcruzer

答えて

0

すべてのものをMySQLに再インストールしてください。