django用many = True批量创建,是否需要从外表中的其他字段中保存外键?

时间:2018-08-16 10:09:35

标签: django django-rest-framework

模型

class User(models.Model):
  email = models.EmailField()


class Session(models.Model):
  user = models.ForeignKey()
  name = models.TextField()

class SessionSerializer(serializers.ModelSerializer):
  email = serializers.SerializerMethodField()
  fields=['name', 'email']

我需要使用会话序列化程序创建多个对象,但是如何通过使用传递的电子邮件保存用户?

1 个答案:

答案 0 :(得分:1)

您可以使用SlugRelatedField

class SessionSerializer:
  email = SlugRelatedField(source='user', slug_field='email', queryset=User.objects.all())
  class Meta: 
      fields=['name', 'email']

请注意,email模型的字段应该是唯一的:

class User(models.Model):
  email = models.EmailField(unique=True)