在Django REST Framework的Browsable API中选择外键

时间:2017-11-09 14:07:43

标签: python django django-rest-framework

我在两个模型之间有一个简单的ForeignKey关系:

class Ticket(models.Model):
    description = models.CharField(max_length=1000)
    created_by = models.ForeignKey(User, related_name="created_ticket")

class User(models.Model):
    username = models.CharField(max_length=64, unique=True, primary_key=True)
    email = models.CharField(max_length=255)

我有一个序列化器,用户在票证中序列化为嵌套的序列化器。我理想的是

  • 在可浏览API上Ticket的更新视图中,可以从现有用户的下拉列表中进行选择,
  • 在输入用户名和电子邮件时,应用程序应检查用户是否存在这些参数,如果存在,则将它们分配给故障单,如果不存在,则引发验证错误(验证部分我工作了,剩下的......不是那么多)。

到目前为止,我已经尝试按照覆盖更新/创建方法,但是当我输入代码时,应用程序总是尝试创建一个新对象,然后抱怨具有相同用户名(pkey)的对象存在。我试过从这个主题的文档中找到一些意义,但运气不好。

编辑 :我的更新方法是

def update(self, instance, validated_data):
    usr_data = validated_data.pop('created_by')
    instance.created_by_id = usr_data.id
    return instance

0 个答案:

没有答案