在django-restframework和admin面板中将电子邮件定义为PK

时间:2018-03-11 11:37:18

标签: authentication django-rest-framework

我是Django和Django休息框架的新手。

我有两个问题: 1. Django的auth.User附带一个id字段。我更愿意只使用电子邮件作为主键,我该怎么做?

  1. 当我尝试使用管理网站创建一个新项目时,我收到此错误:
  2. (1452,'无法添加或更新子行:外键约束失败($(document).ready(function(){ var test="for testing purposes only"; alert(killSpaces(test)); }); db_lab_rat,CONSTRAINT researchproject_project FOREIGN KEY({{ 1}})参考researchproject_proj_lead_researcher_id_cdf43d86_fk_researchplead_researcher_id)')

    我认为管理面板会发送电子邮件而不是id,以便为lead_researcher属性创建项目。任何想法如何解决这个问题?

    项目模型:

    researchproject_user

    任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

不要覆盖默认主键。它导致重复错误或导致大数据库出现问题。如果需要,使用Serializer返回带有id的对象或删除其他字段。

from rest_framework import serializers

class ProjectSerializer(serializers.ModelSerializer):

    class Meta(object):
        model = Project
        fields = ('name', 'stdy_goal', 'animal_welfare', 'start_date')

并且对博林场进行索引不是优选的,也不是一种好的做法。