【问题标题】:Django 1054, "Unknown column 'emp_id' in 'field list"Django 1054,“‘字段列表’中的未知列‘emp_id’”
【发布时间】:2017-07-21 14:20:50
【问题描述】:

我正在尝试使用 django 管理员用户名字段添加相关字段 emp_id

emp_id: 出现在 Employee 表中 Django admin 和表 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)

【问题讨论】:

  • 请添加您的模型类和序列化器类结构。
  • 更新了我的问题现在检查一下
  • 为什么在这里使用 SerializerMethodField?如果您的序列化程序是 ModelSerializer 或 serializers.Serializer 那么它会自动出现,但如果它是 SerializerMethodField 就像您的情况一样,那么为此创建一个方法。

标签: django django-rest-framework django-users serialization


【解决方案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')

【讨论】:

    【解决方案2】:

    将您的序列化器字段更改为,

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

    【讨论】:

    • 我收到此错误 (1054, \"Unknown column 'auth_user.emp_id' in 'field list'\")"
    • 感谢您的回复。但我单独使用 SerializerMethodField 解决了它
    猜你喜欢
    • 1970-01-01
    • 2020-01-23
    • 2018-03-12
    • 2013-12-10
    • 2011-04-16
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多