2017-07-21 51 views
1

我正在嘗試使用添加相關字段emp_id django admin用戶名字段Django 1054「字段列表中的未知列'emp_id'

EMP_ID:員工提出Django管理和Employee表之間表通用名稱爲username

我使用DRF - SerializerMethodField但仍說上述錯誤..

如何我解決這個問題嗎?

這裏是我的模型序列化,

模型,

emp_id = models.ForeignKey(Employee, db_column='emp_id', null=True, blank=True, default=None) 

串行,

emp_id = serializers.SerializerMethodField(method_name=None) 
+0

請添加您的模型類和序列化器類結構。 – AnkurJat

+0

更新我的問題現在檢查它 –

+1

爲什麼你在這裏使用SerializerMethodField?如果您的序列化程序是ModelSerializer或serializers.Serializer,那麼它會自動出現,但如果它是SerializerMethodField的,那麼爲您的情況創建一個方法。 – AnkurJat

回答

0

更改您的串行領域,

emp_id = serializers.PrimaryKeyRelatedField(queryset=Employee.objects.all()) 
+0

我得到這個錯誤(1054,\「未知的列'auth_user.emp_id'在'字段列表'\」)「 –

+0

您能否顯示您的模型和序列化程序? – zaidfazil

+0

感謝您的回覆。但我解決它使用SerializerMethodField獨自 –

1

我這裏怎麼解決它使用SerializerMethodField

emp_id = serializers.SerializerMethodField('emp_id_from_nickname') 

這裏,emp_id_from_nickname是方法,這有助於增加價值到我的領域。

def emp_id_from_nickname(self, model_obj): 
    get_id = Employee.objects.get(usename=model_obj.username).emp_id 
    return get_id 

class Meta: 
    model = User 
    fields = ('id', 'username', 'first_name', 'last_name', 'emp_id') 
相關問題